STM32F4 Watchdog

Gast #3177876
Lesenswert?

Ich habe ein Problem mit dem Watchdog.

Er mach ständig einen Reset trotz aufruf von ResetWatchdog(); in der
Hauptschleift.

Wäre Dankbar für Hilfe.


//===================================================================
// Modul WWDG
//===================================================================
void InitWatchdog(int Baudrate)
{

//System Clock auf Watchdog
RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);

WWDG_SetPrescaler(WWDG_Prescaler_1);    //WWDG clock counter = (PCLK1 
(30MHz)/4096)/1 = 7324 Hz (~137 us)
WWDG_SetCounter(80);           //Werte 0x40 und 0x7F
WWDG_SetWindowValue(120);         //Wert muss kleiner als 0x80 sein
                    //Aktualisieren nur wenn Counter
                    //Reset wenn < 120 und > 64

WWDG_Enable(127);            //WWDG timeout = ~137 us * (127-64) = 8.6 
ms

WWDG_ClearFlag();
WWDG_EnableIT();
}


//===================================================================
//
//===================================================================
void ResetWatchdog(void)
{

WWDG_SetCounter(80);

}

//===================================================================
//
//===================================================================
void WWDG_IRQHandler(void)
{

if (WWDG_GetFlagStatus())
  {
  WWDG_SetCounter(0x7f);
  WWDG_ClearFlag();
  }

}

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