Windowed Watchdog Timer (WWDT) example code for the LPC824

Dependencies:   mbed

main.cpp

Committer:
MACRUM
Date:
2015-08-05
Revision:
0:3d3dd1e8cfd0

File content as of revision 0:3d3dd1e8cfd0:

/*
    Windowed Watchdog Timer (WWDT) example code for the LPC824 
*/

#include "mbed.h"

Serial pc(USBTX, USBRX);

void kick(float s);
void feed();

void kick(float s)
{
    LPC_SYSCON->WDTOSCCTRL = (0xA << 5);    // wdt_osc_clk = Fclkana/2, Fclkana = 3.5MHz
    LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 17); // Enable Clock WWDT
    LPC_SYSCON->PDRUNCFG &= ~(1 << 6);      // Enable Power WDTOSC_PD
    uint32_t clk = ((3500000/2)/4);         // COUNT = wdt_osc_clk/4
    LPC_WWDT->TC = s * (float)clk;
    LPC_WWDT->MOD = 0x3;                    // Enabled and Reset
    feed();
}

void feed()
{
    LPC_WWDT->FEED = 0xAA;
    LPC_WWDT->FEED = 0x55;
}

int main()
{
    pc.printf("\nProgram start.\n");
    kick(2.5);

    int count = 0;
    while(1) {
        wait(0.2);
        if (count < 10) {
            feed();
            pc.printf("*");
        }
        count++;
    }
}