diff --git a/src/lpc176x/main.c b/src/lpc176x/main.c index 24cf6816..fc06bc24 100644 --- a/src/lpc176x/main.c +++ b/src/lpc176x/main.c @@ -11,6 +11,29 @@ DECL_CONSTANT(MCU, "lpc176x"); +/**************************************************************** + * watchdog handler + ****************************************************************/ + +void +watchdog_reset(void) +{ + LPC_WDT->WDFEED = 0xaa; + LPC_WDT->WDFEED = 0x55; +} +DECL_TASK(watchdog_reset); + +void +watchdog_init(void) +{ + LPC_WDT->WDTC = 4000000 / 2; // 500ms timeout + LPC_WDT->WDCLKSEL = 1<<31; // Lock to internal RC + LPC_WDT->WDMOD = 0x03; // select reset and enable + watchdog_reset(); +} +DECL_INIT(watchdog_init); + + /**************************************************************** * misc functions ****************************************************************/