Page 1 of 1

Indipendend Watchdog on stm32f0

Posted: Wed Feb 10, 2021 9:20 am
by Oscar_T
Hi

I am trying to implement IWDG timer within the program.

In a previous post LeighM you indicated how to activate the watchdog.

Code: Select all

// 1. Enable the IWDG by writing 0x0000 CCCC in the IWDG_KR register.
IWDG->KR = 0xCCCC;
// 2. Enable register access by writing 0x0000 5555 in the IWDG_KR register.
IWDG->KR = 0x5555;
// 3. Write the IWDG prescaler by programming IWDG_PR from 0 to 7.
IWDG->PR = 7;
// 4. Write the reload register (IWDG_RLR).
IWDG->RLR = 0xFFF;
// 5. Wait for the registers to be updated (IWDG_SR = 0x0000 0000).
while (IWDG->SR);
// 6. Refresh the counter value with IWDG_RLR (IWDG_KR = 0x0000 AAAA)
IWDG->KR = 0xAAAA;
I tried to enter the code and readjust it to make the timer be 1 second, but it resets first instead.

Am I doing something wrong in the formula?

Re: Indipendend Watchdog on stm32f0

Posted: Wed Feb 10, 2021 10:09 am
by LeighM
Hi,
I think the main issue is that the watchdog reset commands

Code: Select all

IWDG->KR = 0xAAAA;
have been placed in a Calculation icon,
they should be in a C icon

Re: Indipendend Watchdog on stm32f0

Posted: Wed Feb 10, 2021 10:21 am
by Oscar_T
Hi LeighM

Many thanks