Hi! Mache gerade meine erste Erfahrungen mit dem Watchdog Timer. Ich dachte ich tu meinem PIC was gutes und schalt ihn mal ein. Irgendwann wunder ich mich, warum der PIC alle 2:18min abstürtzt. Irgendwie dachte ich, dass der C18 Compiler selbst daran denkt den Watchdog Timer zu Reseten - > anscheinen falsch gedacht. Kann ich das CLRWDT als Assembler inline in meine Main-Schleife packen oder wie macht man das den sauber? Gruß stefan
Hi. Du kannst es einfach über TMR interrupt laufen lassen:
1 | void interrupt_high (void) |
2 | {
|
3 | //******************************************************************************
|
4 | // System timer (for system ticks) 1ms
|
5 | //******************************************************************************
|
6 | if (PIR1bits.TMR2IF) |
7 | {
|
8 | _asm clrwdt _endasm |
9 | |
10 | |
11 | OS_Timer(); |
12 | PIR1bits.TMR2IF = 0; |
13 | }
|
14 | .
|
15 | .
|
16 | .
|
17 | .
|
oder in Scleifen einfügen: _asm clrwdt _endasm
>Du kannst es einfach über TMR interrupt laufen lassen:
Igitt, eine Todsünde! Ein TMR Interrupt läuft
noch weiter wenn das Programm irgendwo hängt.
>Mache gerade meine erste Erfahrungen mit dem Watchdog Timer.
Er soll erstmal das versuchen :-)
oder in Scleifen einfügen:
_asm clrwdt _endasm
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.