ils
Fork of GA-Test_copy by
Watchdog/Watchdog.cpp@2:5adf0b785944, 2018-01-10 (annotated)
- Committer:
- bberabi
- Date:
- Wed Jan 10 16:14:49 2018 +0000
- Revision:
- 2:5adf0b785944
- Parent:
- 0:a3b83d366423
milc
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aungriah | 0:a3b83d366423 | 1 | #include "Watchdog.h" |
aungriah | 0:a3b83d366423 | 2 | |
aungriah | 0:a3b83d366423 | 3 | |
aungriah | 0:a3b83d366423 | 4 | Watchdog::Watchdog() { |
aungriah | 0:a3b83d366423 | 5 | } |
aungriah | 0:a3b83d366423 | 6 | |
aungriah | 0:a3b83d366423 | 7 | // Load timeout value in watchdog timer and enable |
aungriah | 0:a3b83d366423 | 8 | void Watchdog::kick(float s) { |
aungriah | 0:a3b83d366423 | 9 | |
aungriah | 0:a3b83d366423 | 10 | uint32_t clk = SystemCoreClock / 3; // found by trying. TODO: exakt values |
aungriah | 0:a3b83d366423 | 11 | hiwdg.Instance = IWDG; |
aungriah | 0:a3b83d366423 | 12 | hiwdg.Init.Prescaler = IWDG_PRESCALER_16; |
aungriah | 0:a3b83d366423 | 13 | hiwdg.Init.Reload = s * (float)clk; |
aungriah | 0:a3b83d366423 | 14 | if (HAL_IWDG_Init(&hiwdg) != HAL_OK) |
aungriah | 0:a3b83d366423 | 15 | { |
aungriah | 0:a3b83d366423 | 16 | // Error Handler |
aungriah | 0:a3b83d366423 | 17 | } |
aungriah | 0:a3b83d366423 | 18 | } |
aungriah | 0:a3b83d366423 | 19 | |
aungriah | 0:a3b83d366423 | 20 | // "kick" or "feed" the dog - reset the watchdog timer |
aungriah | 0:a3b83d366423 | 21 | // by writing this required bit pattern |
aungriah | 0:a3b83d366423 | 22 | void Watchdog::kick() { |
aungriah | 0:a3b83d366423 | 23 | HAL_IWDG_Refresh(&hiwdg); |
aungriah | 0:a3b83d366423 | 24 | } |
aungriah | 0:a3b83d366423 | 25 |