Measure system

Dependencies:   EthernetNetIf mbed RF12B

Revision:
0:8d62137f7ff4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WatchDog/WatchDog.cpp	Thu Mar 03 08:45:49 2011 +0000
@@ -0,0 +1,40 @@
+#include "mbed.h"
+#include "WatchDog.h"
+
+
+watchdog::watchdog(float s) {
+    LPC_WDT->WDCLKSEL = 0x1;                // Set CLK src to PCLK
+    uint32_t clk = SystemCoreClock / 16;    // WD has a fixed /4 prescaler, PCLK default is /4 
+    LPC_WDT->WDTC = s * (float)clk;         
+    LPC_WDT->WDMOD = 0x3;                   // Enabled and Reset        
+    feed();    
+}
+
+watchdog_ms::watchdog_ms(int ms) {
+    LPC_WDT->WDCLKSEL = 0x1;                // Set CLK src to PCLK
+    uint32_t clk = SystemCoreClock / 16;    // WD has a fixed /4 prescaler, PCLK default is /4 
+    LPC_WDT->WDTC = ((float)ms * (float)clk) /1000;         
+    LPC_WDT->WDMOD = 0x3;                   // Enabled and Reset        
+    feed();
+}
+
+watchdog_us::watchdog_us(int us) {
+    LPC_WDT->WDCLKSEL = 0x1;                // Set CLK src to PCLK
+    uint32_t clk = SystemCoreClock / 16;    // WD has a fixed /4 prescaler, PCLK default is /4 
+    LPC_WDT->WDTC = ((float)us * (float)clk) /1000000;         
+    LPC_WDT->WDMOD = 0x3;                   // Enabled and Reset        
+    feed();
+}
+
+void watchdog::feed() {
+    LPC_WDT->WDFEED = 0xAA;
+    LPC_WDT->WDFEED = 0x55;
+}
+void watchdog_ms::feed() {
+    LPC_WDT->WDFEED = 0xAA;
+    LPC_WDT->WDFEED = 0x55;
+}
+void watchdog_us::feed() {
+    LPC_WDT->WDFEED = 0xAA;
+    LPC_WDT->WDFEED = 0x55;
+}