extendedWatchDogAVR class

The extendedWatchDogAVR class uses the pre-reset interrupt to of the built in AVR watchdog to extend the allowable time between resets of the watchdog's clock up to multiple minute timescales.

The standard watchdog on an AVR processor has a maximum period of 8s without a reset of the watchdog clock before the processor is restarted.

Code for this is taken from this forum post: https://forum.arduino.cc/index.php?topic=248263.0

Public static variables

static volatile uint32_t _barksUntilReset
The number of times the pre-reset interrupt is allowed to fire before the watchdog reset is allowed.
static uint32_t _resetTime_s
Internal reference to the number of seconds of silence before the module is reset.

Public static functions

static void setupWatchDog(uint32_t resetTime_s)
One-time initialization of watchdog timer.
static void enableWatchDog()
Enable the watchdog.
static void disableWatchDog()
Disable the watchdog.
static void resetWatchDog()
Reset the number of barks left before the watchdog bites and the board resets.
static void clearWDTInterrupt()
Reset the processor watchdog flag.

Function documentation

static void extendedWatchDogAVR::setupWatchDog(uint32_t resetTime_s)

One-time initialization of watchdog timer.

Parameters
resetTime_s The length of time in seconds between resets of the watchdog before the entire board is reset.

static void extendedWatchDogAVR::resetWatchDog()

Reset the number of barks left before the watchdog bites and the board resets.