Tomonori Kuroki / MuWatchdog

Fork of Watchdog by David Smart

Revision:
19:3b172e42d8ee
Parent:
18:edfbf294c9e2
Child:
21:dc589c475a04
--- a/Watchdog.cpp	Mon Mar 19 04:35:39 2018 +0000
+++ b/Watchdog.cpp	Mon Mar 19 14:38:55 2018 +0000
@@ -101,13 +101,15 @@
     Configure((int)(s * 1000));
 }
 
+#define WDTOSCCTRL_Val(clk, div)    ((((uint32_t)(clk)) << 5) | (((div) >> 1) - 1))
+
 void Watchdog::Configure(int ms)
 {
 #if 0
     uint32_t clk = get_wdtclock() / 4;    // WD has a fixed /4 prescaler, and a 500khz oscillator
     LPC_WWDT->TC = (ms * clk) / 1000;
 #else
-    LPC_SYSCON->WDTOSCCTRL = (0xA << 5);    // wdt_osc_clk = Fclkana/2, Fclkana = 3.5MHz
+    LPC_SYSCON->WDTOSCCTRL = WDTOSCCTRL_Val(10, 2);    // 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