Lab 6 Code 2 Hardware Failure Detection

Fork of Watchdog_sample_nocoverage by William Marsh

Revision:
1:159a09ac60ba
diff -r 5ce3cfc57999 -r 159a09ac60ba wdt.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wdt.cpp	Tue Feb 28 17:39:50 2017 +0000
@@ -0,0 +1,43 @@
+#include "mbed.h"
+#include "wdt.h"
+
+
+// Simple Library for Watchdog
+// ---------------------------
+
+// Initialise watchdog using 1KHz clock
+//  To prevent overwriting, only a single write to the COPC register possible
+//  
+void wdt_1sec() {
+     // 1024ms, not windowed - this is the default 
+     /* SIM_COPC: COPT=11,COPCLKS=0,COPW=0 */
+     SIM->COPC = (uint32_t)0x0Cu;
+}
+
+void wdt_256ms() {
+     // 256ms, not windowed
+     /* SIM_COPC: COPT=10,COPCLKS=0,COPW=0 */
+     SIM->COPC = (uint32_t)0x08u;
+}
+
+void wdt_32ms() {
+     // 32ms, not windowed  
+     /* SIM_COPC: COPT=01,COPCLKS=0,COPW=0 */
+     SIM->COPC = (uint32_t)0x04u;
+}
+
+// Kick (feed, reload) our watchdog timer
+void wdt_kick_all(){
+    SIM->SRVCOP = (uint32_t)0x55u;
+    SIM->SRVCOP = (uint32_t)0xAAu;
+}
+
+void wdt_kickA(){
+    SIM->SRVCOP = (uint32_t)0x55u;
+}
+
+void wdt_kickB(){
+    SIM->SRVCOP = (uint32_t)0xAAu;
+}
+
+