Forum: Mikrocontroller und Digitale Elektronik PIC Watchdog Timer C18


von Stefan (Gast)


Lesenswert?

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

von Hermann U. (Firma: www.pcb-devboards.de) (gera82)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>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.

von Hermann U. (Firma: www.pcb-devboards.de) (gera82)


Lesenswert?

>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
Noch kein Account? Hier anmelden.