LPC1768 and LPC11U24 watchdog timer

Dependents:   GSwifi_tsutenkaku barometer-m0 BMAGThrRev

Committer:
okini3939
Date:
Sat Aug 04 05:23:40 2012 +0000
Revision:
0:f28de891b0d3
Child:
1:f7baa89f84bc
1st build
;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:f28de891b0d3 1 #include "mbed.h"
okini3939 0:f28de891b0d3 2 #include "WDT.h"
okini3939 0:f28de891b0d3 3
okini3939 0:f28de891b0d3 4 // Simon's Watchdog code from
okini3939 0:f28de891b0d3 5 // http://mbed.org/forum/mbed/topic/508/
okini3939 0:f28de891b0d3 6 void Watchdog::init(float s) {
okini3939 0:f28de891b0d3 7 LPC_WDT->WDCLKSEL = 0x01; // Set CLK src to PCLK
okini3939 0:f28de891b0d3 8 uint32_t clk = SystemCoreClock / 16; // WD has a fixed /4 prescaler, PCLK default is /4
okini3939 0:f28de891b0d3 9 LPC_WDT->WDTC = s * (float)clk;
okini3939 0:f28de891b0d3 10 LPC_WDT->WDMOD = 0x03; // Enabled and Reset
okini3939 0:f28de891b0d3 11 kick();
okini3939 0:f28de891b0d3 12 }
okini3939 0:f28de891b0d3 13 // "kick" or "feed" the dog - reset the watchdog timer
okini3939 0:f28de891b0d3 14 // by writing this required bit pattern
okini3939 0:f28de891b0d3 15 void Watchdog::kick() {
okini3939 0:f28de891b0d3 16 __disable_irq();
okini3939 0:f28de891b0d3 17 LPC_WDT->WDFEED = 0xAA;
okini3939 0:f28de891b0d3 18 LPC_WDT->WDFEED = 0x55;
okini3939 0:f28de891b0d3 19 __enable_irq();
okini3939 0:f28de891b0d3 20 }
okini3939 0:f28de891b0d3 21
okini3939 0:f28de891b0d3 22 int Watchdog::getFlg () {
okini3939 0:f28de891b0d3 23 return LPC_WDT->WDMOD & (1<<2) ? 1 : 0;
okini3939 0:f28de891b0d3 24 }