https://os.mbed.com/cookbook/WatchDog-Timer This link has demonstrated a way to implement Watchdog Timer on Mbed. This library is the library version of that code.

Committer:
mreda
Date:
Fri Feb 09 11:13:11 2018 +0000
Revision:
0:dece639e483e
Child:
1:7d0312e56c87
WatchdogTimer_LPC1768_version_1.01

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mreda 0:dece639e483e 1 #include "mbed.h"
mreda 0:dece639e483e 2 #include "WatchdogTimer.h"
mreda 0:dece639e483e 3 /*
mreda 0:dece639e483e 4 WatchdogTimer::WatchdogTimer(float TimeInSecond): _kick(TimeInSecond){
mreda 0:dece639e483e 5 _kick();
mreda 0:dece639e483e 6 }
mreda 0:dece639e483e 7 */
mreda 0:dece639e483e 8 // "kick" or "feed" the dog - reset the watchdog timer
mreda 0:dece639e483e 9 // by writing this required bit pattern
mreda 0:dece639e483e 10 void WatchdogTimer::kick() {
mreda 0:dece639e483e 11 LPC_WDT->WDFEED = 0xAA;
mreda 0:dece639e483e 12 LPC_WDT->WDFEED = 0x55;
mreda 0:dece639e483e 13 }
mreda 0:dece639e483e 14 // Load timeout value in watchdog timer and enable
mreda 0:dece639e483e 15 void WatchdogTimer::kick(float s) {
mreda 0:dece639e483e 16 LPC_WDT->WDCLKSEL = 0x1; // Set CLK src to PCLK
mreda 0:dece639e483e 17 uint32_t clk = SystemCoreClock / 16; // WD has a fixed /4 prescaler, PCLK default is /4
mreda 0:dece639e483e 18 LPC_WDT->WDTC = s * (float)clk;
mreda 0:dece639e483e 19 LPC_WDT->WDMOD = 0x3; // Enabled and Reset
mreda 0:dece639e483e 20 kick();
mreda 0:dece639e483e 21 }
mreda 0:dece639e483e 22