Watchdog Timer for the K64F. User can set timeout value from 1 to 356 seconds with a one second resolution.
Dependents: Telliskivi2_2014 mbed-IBooth-ETH TwitterReader
Watchdog.h@1:70e99b5845fd, 2014-11-14 (annotated)
- Committer:
- loopsva
- Date:
- Fri Nov 14 17:22:46 2014 +0000
- Revision:
- 1:70e99b5845fd
- Parent:
- 0:2a46d40a176e
Added Compiler K64F target flag
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
loopsva | 0:2a46d40a176e | 1 | #ifndef WATCHDOG_K64F_H |
loopsva | 0:2a46d40a176e | 2 | #define WATCHDOG_K64F_H |
loopsva | 0:2a46d40a176e | 3 | |
loopsva | 0:2a46d40a176e | 4 | #include "mbed.h" |
loopsva | 0:2a46d40a176e | 5 | |
loopsva | 0:2a46d40a176e | 6 | /** Routines to set and kick the Watchdog timer for the K64F. |
loopsva | 0:2a46d40a176e | 7 | * |
loopsva | 0:2a46d40a176e | 8 | * User inputs a value from 1 to 356 seconds when initializing the Watchdog |
loopsva | 0:2a46d40a176e | 9 | * timer. The user's input number is multiplied by a fixed value and then |
loopsva | 0:2a46d40a176e | 10 | * placed into the countdown timer. |
loopsva | 0:2a46d40a176e | 11 | * |
loopsva | 0:2a46d40a176e | 12 | * The user is responsible for "kicking" the Watchdog before the timeout interval |
loopsva | 0:2a46d40a176e | 13 | * expires, otherwise the K64F will automatically reboot. |
loopsva | 0:2a46d40a176e | 14 | * |
loopsva | 0:2a46d40a176e | 15 | * @code |
loopsva | 0:2a46d40a176e | 16 | * #include "mbed.h" |
loopsva | 0:2a46d40a176e | 17 | * #include "Watchdog.h" |
loopsva | 0:2a46d40a176e | 18 | * |
loopsva | 0:2a46d40a176e | 19 | * Watchdog wdt; |
loopsva | 0:2a46d40a176e | 20 | * |
loopsva | 0:2a46d40a176e | 21 | * int main() { |
loopsva | 0:2a46d40a176e | 22 | * //initialization code.... |
loopsva | 0:2a46d40a176e | 23 | * wdt.kick(20); //init the watchdog for a 20 second timeout |
loopsva | 0:2a46d40a176e | 24 | * while(1) { |
loopsva | 0:2a46d40a176e | 25 | * wait_ms(1000); //do some code |
loopsva | 0:2a46d40a176e | 26 | * wdt.kick(); //kick the watchdog before 20 seconds is up |
loopsva | 0:2a46d40a176e | 27 | * } |
loopsva | 0:2a46d40a176e | 28 | * } |
loopsva | 0:2a46d40a176e | 29 | * @endcode |
loopsva | 0:2a46d40a176e | 30 | * |
loopsva | 0:2a46d40a176e | 31 | */ |
loopsva | 0:2a46d40a176e | 32 | /* Watchdog controller class |
loopsva | 0:2a46d40a176e | 33 | */ |
loopsva | 0:2a46d40a176e | 34 | class Watchdog { |
loopsva | 0:2a46d40a176e | 35 | |
loopsva | 0:2a46d40a176e | 36 | public: |
loopsva | 0:2a46d40a176e | 37 | /** Create a Watchdog object and initialize timeout in seconds |
loopsva | 0:2a46d40a176e | 38 | * |
loopsva | 0:2a46d40a176e | 39 | * @param int timeout in seconds. Range (1 - 356) |
loopsva | 0:2a46d40a176e | 40 | * |
loopsva | 0:2a46d40a176e | 41 | * Note: if value out of range, default value with be 356 |
loopsva | 0:2a46d40a176e | 42 | * |
loopsva | 0:2a46d40a176e | 43 | * @return NONE |
loopsva | 0:2a46d40a176e | 44 | */ |
loopsva | 0:2a46d40a176e | 45 | void kick(int WDTseconds); |
loopsva | 0:2a46d40a176e | 46 | |
loopsva | 0:2a46d40a176e | 47 | /** Keep alive by kicking the Watchdog occasionally |
loopsva | 0:2a46d40a176e | 48 | * |
loopsva | 0:2a46d40a176e | 49 | * @param NONE |
loopsva | 0:2a46d40a176e | 50 | * |
loopsva | 0:2a46d40a176e | 51 | * @return NONE |
loopsva | 0:2a46d40a176e | 52 | */ |
loopsva | 0:2a46d40a176e | 53 | void kick(); |
loopsva | 0:2a46d40a176e | 54 | |
loopsva | 0:2a46d40a176e | 55 | private: |
loopsva | 0:2a46d40a176e | 56 | /** Disable the watchdog Function |
loopsva | 0:2a46d40a176e | 57 | * |
loopsva | 0:2a46d40a176e | 58 | * @param NONE |
loopsva | 0:2a46d40a176e | 59 | * |
loopsva | 0:2a46d40a176e | 60 | * @return NONE |
loopsva | 0:2a46d40a176e | 61 | */ |
loopsva | 0:2a46d40a176e | 62 | void DisableWDOG(); |
loopsva | 0:2a46d40a176e | 63 | |
loopsva | 0:2a46d40a176e | 64 | /** Enable the watchdog Function |
loopsva | 0:2a46d40a176e | 65 | * |
loopsva | 0:2a46d40a176e | 66 | * @param NONE |
loopsva | 0:2a46d40a176e | 67 | * |
loopsva | 0:2a46d40a176e | 68 | * @return NONE |
loopsva | 0:2a46d40a176e | 69 | */ |
loopsva | 0:2a46d40a176e | 70 | void EnableWDOG(); |
loopsva | 0:2a46d40a176e | 71 | |
loopsva | 0:2a46d40a176e | 72 | }; |
loopsva | 0:2a46d40a176e | 73 | |
loopsva | 0:2a46d40a176e | 74 | #endif |