Hallo zusammen,
bin bin schon seit Stunden am verzweifeln, weil ich einfach nicht
schnalle.
Habe einen PIC 16F1827 und kann diesen auch schon in den Sleep-Modus
setzen. Das Problem ist, dass er, wenn er per WatchDogTimer aufwacht
(und das möchte ich zu haben) meine vorher definierten Variablen neu
initalisiert.
Anbei das Beispiel:
1 | init fistsetting = 0;
|
2 |
|
3 | void main(void) {
|
4 | INTCONbits.GIE=0b0; //disable global interrupt
|
5 | if(firstsetting==0)
|
6 | {
|
7 | initChannels();
|
8 | firstsetting =1;
|
9 | }
|
10 | while (1) {
|
11 | if(checkAlarmState(checkChannels())==1)
|
12 | {
|
13 | SLEEP();
|
14 | }
|
15 | NOP();
|
16 | }
|
17 | }
|
Meine Funktion initChannels() soll nur 1 mal aufgerufen werden, was ich
mit der Prüfung der Variable firstsetting abfragen will.
Wenn ich nun aber mit dem Debugger (MPLAPX) durch das Programm gehe,
dass wird nach dem Sleep die Variable wieder auf Ausgangswert
zurückgesetzt.
Hat jemand eine Ahnung, woran das liegen kann?!
Habe auch schon das Internet durchforstet, jedoch hat bis jetzt nichts
geholfen.
Vielen Dank schonmal im Vorraus