Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Revision:
40:1324da35afd4
Parent:
22:f957c4f840ad
Child:
62:4b59c1eb429f
--- a/Watchdog.h	Tue Jul 30 02:03:21 2013 +0000
+++ b/Watchdog.h	Sat Oct 05 04:45:22 2013 +0000
@@ -3,7 +3,7 @@
 
 #define WDFAILSAFE  (1200u)
 
-// Simon's Watchdog code from
+// Adapted from Simon's Watchdog code from
 // http://mbed.org/forum/mbed/topic/508/
 namespace Watchdog {
     
@@ -22,10 +22,21 @@
         // WD has a fixed /4 prescaler, PCLK default is /4
         static const float clk = static_cast<float>(SystemCoreClock / 16);
         LPC_WDT->WDTC = s * clk;
-        LPC_WDT->WDMOD = 0x3;                   // Enabled and Reset
+//        LPC_WDT->WDMOD = 0x3;                   // Enabled and Reset
+        LPC_WDT->WDMOD |= 0x3;                   // Enabled and Reset
         kick();
     }
     
+    inline
+    bool didWatchdogReset() {
+        return ( (LPC_WDT->WDMOD) & 0x4 );
+    }
+    
+    inline
+    void clearResetFlag() {
+        LPC_WDT->WDMOD &= ~(0x4);
+    }
+    
     struct SnKickStarter {
         SnKickStarter(const float s) {
             Watchdog::kick(s);