1.26.22 Watchdog Timer (WDT)
The Watchdog Timer (WDT) is used to prevent system lockup if the software becomes trapped in a deadlock. It features one 12-bit down counter that allows a watchdog period of up to 16 seconds (slow clock around 32 kHz).
The WDT can generate a general reset or a processor reset only. In addition, it can be stopped while the processor is in Debug mode or Sleep mode (Idle mode).
Using The Library
The WDT is used to prevent system lockup if the software becomes trapped in a deadlock. It is supplied with VDDCORE. It restarts with initial values on processor reset.
The WDT is built around a 12-bit down counter loaded with the value defined in field PERIOD of the Window Level Register (WDT_WLR). WDT uses slow clock divided by 128 to establish the maximum watchdog period to 16 seconds (with a typical slow clock of 32.768 kHz).
Here is an example code to enable watchdog timer and keep clearing at regular intervals
WDT_Enable(); while ( true ) { // Application Code WDT_Clear(); }
Library Interface
Watchdog Timer peripheral library provides the following interfaces:
Functions
Name | Description |
---|---|
WDT_Initialize | Initializes given instance of the WDT peripheral |
WDT_Clear | Restart the WDT counter |
WDT_Enable | Enable the WDT counter |
WDT_Disable | Disable the WDT counter |
WDT_CallbackRegister | Sets the pointer to the function (and it's context) to be called when the Timeout events occur |
Data types and constants
Name | Type | Description |
---|---|---|
WDT_CALLBACK | Typedef | Defines the data type and function signature for the WDT peripheral callback function |