A Windowed Watchdog Timer (WWDT) acts as a system supervisor that ensures normal operation of the software. If the software execution takes longer or shorter than expected, the WWDT issues a reset of the microcontroller (MCU). A WWDT offers an upper and lower time threshold whereas a Watchdog Timer (WDT) offers only a single threshold.
Even after extensive tests and careful validation, an MCU can still get locked up while executing its program code. There are many reasons that can trigger this unexpected event including something as simple as a temperature change or noise spike from the power supply. A proper implementation of the WDT can save the system from failure in these unfortunate cases, acting as a last line of defense by simply issuing a reset of the MCU.
The WWDT is a built-in hardware module for most modern PIC and AVR MCUs. The WWDT uses the internal oscillator as clock source and offers a variable time-out period and window sizes. When the application starts, the WWDT starts counting to its pre-programmed time. User-written code clears the WWDT within the pre-defined time window, and the process starts over again. If the timer is not cleared during the pre-defined time window, then the WWDT issues a reset of the MCU.