Ich habe an einen PIC zwei LEDs angeschlossen und einen Taster, der einen Reset auslöst(MCLR zu Schalter zu Masse und MCLR zu R zu Vdd). Zusätzlich Spannungsquelle und Schwinger.
Jetzt ist es so, daß im Datenblatt für den 16F628A auf Seite 99 eine Tabelle steht, in der aufgeführt ist, welche Resets es gibt und wie man sie abfragt.
POR = PCON.1
BOR = PCON.0
TO = STATUS.4
PD = STATUS.3
Ich habe mir also eine BasicRoutine geschrieben, die genau das tut. Leider ist das Ergebnis, das mir durch LEDs angezeigt wird, immer so, als ob ich nie einen Reset auslösen würde, sondern immer die Spannung ein-, aus-, und wieder einschalten würde. Aber genau das ist der Fall, ich drücke den Taster und der PIC wird neugestartet, zeigt aber eben durch die LEDs an, daß er ein-, aus-, und wieder eingeschaltet worden wäre.Code:TABLE 14-4: STATUS/PCON BITS AND THEIR SIGNIFICANCE POR BOR TO PD Condition 0 X 1 1 Power-on Reset 0 X 0 X Illegal, TO is set on POR 0 X X 0 Illegal, PD is set on POR 1 0 X X Brown-out Reset 1 1 0 u WDT Reset 1 1 0 0 WDT Wake-up 1 1 u u MCLR Reset during normal operation 1 1 1 0 MCLR Reset during Sleep Legend: u = unchanged, x = unknown
POR im PCON Register bleibt also zumindest immer 0.
Woran kann es liegen - muß ich anders abfragen, andere CONFIG-Bits setzen oder anders beschalten.
Code:IF PCON.1 = 1 AND PCON.0 = 1 THEN IF STATUS.4 = 1 AND STATUS.3 = 0 THEN GOTO ResetNachSleep ELSE GOTO ResetNormal ENDIF ENDIF IF PCON.1 = 1 AND PCON.0 = 0 THEN GOTO BrownOut ENDIF IF PCON.1 = 0 AND STATUS.4 = 1 AND STATUS.3 = 1 THEN GOTO NormalStart ENDIF







Zitieren

Lesezeichen