Version of Watchdog timer for LPC4088 that uses the Singleton design pattern for easy access throughout a program.
Fork of WDT4088 by
Watchdog.cpp@0:fc62d045ca0c, 2013-12-20 (annotated)
- Committer:
- loopsva
- Date:
- Fri Dec 20 19:42:32 2013 +0000
- Revision:
- 0:fc62d045ca0c
- Child:
- 1:06813ae93fea
Initial cut. A Watchdog timer for the LPC4088.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
loopsva | 0:fc62d045ca0c | 1 | #include "mbed.h" |
loopsva | 0:fc62d045ca0c | 2 | #include "Watchdog.h" |
loopsva | 0:fc62d045ca0c | 3 | |
loopsva | 0:fc62d045ca0c | 4 | void Watchdog::kick(int WDTseconds) { |
loopsva | 0:fc62d045ca0c | 5 | if(WDTseconds < 1) WDTseconds = 1; //minimum watchdog time is 1 sec |
loopsva | 0:fc62d045ca0c | 6 | if(WDTseconds > 134) WDTseconds = 134; //maximum watchdog time is 134 sec |
loopsva | 0:fc62d045ca0c | 7 | LPC_WDT->TC = 125000 * WDTseconds; //125000 * 8uS = 1.0 second tics |
loopsva | 0:fc62d045ca0c | 8 | LPC_WDT->MOD = 0x3; //enable and restart watchdog |
loopsva | 0:fc62d045ca0c | 9 | Watchdog::kick(); |
loopsva | 0:fc62d045ca0c | 10 | } |
loopsva | 0:fc62d045ca0c | 11 | |
loopsva | 0:fc62d045ca0c | 12 | void Watchdog::kick() { |
loopsva | 0:fc62d045ca0c | 13 | LPC_WDT->FEED = 0xaa; //kick sequence into FEED register |
loopsva | 0:fc62d045ca0c | 14 | LPC_WDT->FEED = 0x55; |
loopsva | 0:fc62d045ca0c | 15 | } |