Hallo zusammen! Wie der Tietel schon sagt: Ich habe einen PIC (16F84A) komme mit dem Watchdog und dem Reset nicht klar. Ich programmiere mit MPLAB und PICSTART PLUS. Also muß ich meine Controller nach dem Programmieren aus der Programmierbox nehmen und in die Schaltung einsetzen. Nun laufen die Programme aber nicht richtig an. Daher hier meine Frage: Wie muß ich die Einstellungen bei PICSTART beim Programmieren machen? Hierbei denke ich insbesondere an den Power on Reset Timer (oder so ähnlich) und den Watchdog. Als kleine Erläuterung: ich beutze den Watchdog nicht. Da ich aber auch keine Ahnung habe, wie man den im OPTION Register ausstellt (bzw. ob man das überhaupt muß) und ich, wenn meine Anleitungen und das was ich mir daraus überlegt habe stimmen, das Register auch sonst gar nicht benötige hab ich auch keine Zugriffe (weder lesend noch schreibend) auf dieses Register im Quellcode. Watchdog stelle ich aber über das Kontrollkästchen im PICSTART Programmiermenü aus. Wenn dieser Prozessor nicht in der Lage ist einen Reset durch herstellen der Spannungsversorgung herbeizuführen, so wäre ich sehr dankbar über eine ausführliche Beschreibung, wie ich den Reset dann herbeiführen kann (mein Betreuer sagte zwar, das das immer mit Power on Reset fuktioniert hat, aber da seine Errinerungen daran schon mehrere jahre alt sind und er danach nie wieder mit PICs zu tun hatte, glaube ich ihm das im Zweifel nicht......) Das Programm was ich geschrieben habe macht folgendes (also laut Simulation mit MPLAb macht es auch genau das, was es soll) TRISA auf 00000110 TRISB auf 00000000 jetzt kommt eine endlosschleife, die per btfsc verlassen wird, wenn A1 auf 1 liegt (dieser Zustand läßt sich über einen Taster herbeiführen, der A1 auf +5V legt) B1 auf 1 (damit anschalten einer LED, die zw. B1 und Masse liegt) TRISA auf 00000010 PORTA,2 auf 1 (A2 ist mit dem Ausgang der Schaltung verbunden) warten (200 Takte) PORTA,2 auf 0 200 Takte warten TRISA auf 00000110 Endlosschleife, die verlassen (per btfss) wird, wenn A2 auf 1 #### PORTB,2 auf 1 (2.LED an) 200 Takte warten Endlosschleife, bis Schalter gedrückt (also bis A1 auf 1) PORTB auf 00000000 Rücksprung zum Anfang Die Änderung von A2 durch das obere Programm soll von einem 2. PIC empfangen werden (über eine Schleife, wie die, mit der ich hier den Schalter abfrage) woraufhin der Empfänger 255 Takte warten soll und dann seinerseits seinen A2 auf Ausgang umschalten und auf 1 setzen soll, was im oberen Programm dann die mit ### markierte Schleife beenden soll. Also: wenn jemandem ein Fehler in dem Programm (ja, es ist nur Pseodocode, aber sonst wäre mir das grad zu umständlich wieder zur UNI zu fahren und den Code abzuschreiben und hier reinzuposten) auffällt bitte bescheid sagen. Ansonsten bitte ich um Rückmeldung über die Ausführung des Reset und die deaktivierung des Watchdog, damit der mein Prog nicht immer zurücksetzt, bevor ich den Schalter drücken kann und was passiert..... Danke schonmal!
WDT -> In MPLab unter Configuration-Bits. Reset geht mit Hitech-Compiler mit Reset():
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.