System Management code

Dependencies:   CANBuffer mbed SystemManagement mbed-rtos

Dependents:   SystemManagement

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Watchdog.cpp Source File

Watchdog.cpp

00001 // Simon's Watchdog code from
00002 // http://mbed.org/forum/mbed/topic/508/
00003 
00004 #include "mbed.h"
00005 
00006 class Watchdog {
00007 public:
00008 // Load timeout value in watchdog timer and enable
00009     void kick(float s) {
00010         LPC_WDT->WDCLKSEL = 0x1;                // Set CLK src to PCLK
00011         uint32_t clk = SystemCoreClock / 16;    // WD has a fixed /4 prescaler, PCLK default is /4
00012         LPC_WDT->WDTC = s * (float)clk;
00013         LPC_WDT->WDMOD = 0x3;                   // Enabled and Reset
00014         kick();
00015     }
00016 // "kick" or "feed" the dog - reset the watchdog timer
00017 // by writing this required bit pattern
00018     void kick() {
00019         LPC_WDT->WDFEED = 0xAA;
00020         LPC_WDT->WDFEED = 0x55;
00021     }
00022 };