Other Parts Discussed in Thread: CONTROLSUITE
Hi all,
I'm trying to use WD timer0 in our project based on Concerto F28M35x.
Here is the init procedure I run:
void WatchDogTimer0Init (void)
{
// Configure Watchdog timer 0
// Disable Protection
HWREG(SYSCTL_MWRALLOW) = 0xA5A5A5A5;
// Enable the peripherals used by this example.
SysCtlPeripheralEnable(SYSCTL_PERIPH_WDOG0);
// Unlock writes to watchdog configuration.
WatchdogUnlock(WATCHDOG0_BASE);
// Set the period of the watchdog timer.
WatchdogReloadSet(WATCHDOG0_BASE, WD_VALUE_FOR_15SEC_TIMEOUT);
// Enable reset generation from the watchdog timer.
#if WD_SYSTM_IN_DEBUG
// Set the watchdog timer to stop counting when the processor is stopped by the debugger,
WatchdogStallEnable(WATCHDOG0_BASE);
#endif
WatchdogResetEnable(WATCHDOG0_BASE);
// Enable the watchdog timer.
WatchdogEnable(WATCHDOG0_BASE);
// Lock subsequent writes to watchdog configuration.
WatchdogLock(WATCHDOG0_BASE);
// Disable writes to protected registers.
HWREG(SYSCTL_MWRALLOW) = 0;
}
So, I expect to get wd interrupt after timeout, and a reset after another timeout.
Indeed I get the wd interrupt after wd timer expires, but after that it looks like I get this interrupt again and again in infinite loop.
Looks like I never get the reset.
What's wrong?
NOTE: Inside the wd ISR I do nothing but increasing interrupt counter.
Thanks,
Alex.