Hallöchen,
ich habe ein Problem ...
Und zwar soll der Watchdog des MSPs benutzt werden und nach einem Reset
soll die Firmware in einen bestimmten Zustand gehen, aber nicht den
normalen Start durchführen .
Hier mein aktueller Stand :
1 | void main (void)
|
2 | {
|
3 | WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
|
4 | if ((IFG1 & (WDTIFG + PORIFG + RSTIFG)) == WDTIFG ) { // Test ob der Watchdog zugeschlagen hat .... oder ob normaler Reset
|
5 | // wenn Watchdog , dann wird der mV Output auf 0V gezogen !
|
6 | WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
|
7 | P1SEL &=~ BIT4;
|
8 | P1DIR |= BIT4;
|
9 | P1OUT &= ~BIT4;
|
10 | P5DIR |= BIT1;
|
11 | P5OUT &= ~BIT1;
|
12 | while (1) {}; // Endlosschleife
|
13 | }
|
Doch leider scheint es damit Start-Schwierigkeiten zu geben.
manchmal funktioniert es manchmal nicht.
Eigentlich sollte der Watchdog garnicht zuschlagen, aber es schein so
als ob die Firmware doch in diese Endlosschleife gelangt.
Habt ihr noch eine andere bzw. bessere Idee ?
Danke im Voraus für eure Mühe.
Gruß
Roy