Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Watchdog.h

Committer:
uci1
Date:
2012-08-18
Revision:
12:d472f9811262
Parent:
0:664899e0b988
Child:
22:f957c4f840ad

File content as of revision 12:d472f9811262:

#ifndef MB_Watchdog
#define MB_Watchdog

// Simon's Watchdog code from
// http://mbed.org/forum/mbed/topic/508/
namespace Watchdog {
    
    // "kick" or "feed" the dog - reset the watchdog timer
    // by writing this required bit pattern
    inline
    void kick() {
        LPC_WDT->WDFEED = 0xAA;
        LPC_WDT->WDFEED = 0x55;
    }
    
    // Load timeout value in watchdog timer and enable
    inline
    void kick(const float s) {
        LPC_WDT->WDCLKSEL = 0x1;                // Set CLK src to PCLK
        // 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
        kick();
    }
 
};


#endif // MB_Watchdog