Watchdog Timer

Gast #394277
Lesenswert?

Hallo,
ich habe folgendes Problem und benötige eure Hilfe.
Der Watchdog ist aktiv und resets werden durchgeführt.
Da der Baustein in den sleepmodus versetzt werden soll, muß ja
bekanntlicher weise der WDTimer ausgestellt werden. Dieses klappt auch.
Nur dann das erneute Einstellen des WD klappt nicht. Ich will ihn so
einstellen, das er nicht gleich einen Reset durchführt, sonder das
Programm weiter abläuft:
Controller:Atmega88, CodeVision AVR.

Hier meine beiden Routinen WDT_on, WDT_off

//******************************************************************

void WDT_off(void)
{
       #asm("cli")  //Interrupts aus
       #asm("wdr")
       MCUSR&=0xf7; //clear WDRF in MCUSR register
       WDTCSR|=0x18;//logisch 1 in WDCE u. WDE im WDTCSR register
       WDTCSR=0x00;
       #asm("sei")
}
//*******************************************************************
void WDT_on(void)
        {


            #asm("cli")  //Interrupts aus
            #asm("wdr")
            MCUSR&=0xf7;
            WDTCSR=0x38;
            WDTCSR=0x28;
            #asm("sei")
        }
//*******************************************************************

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren