openpilot v0.9.6 release
date: 2024-02-21T23:02:42 master commit: 0b4d08fab8e35a264bc7383e878538f8083c33e5
This commit is contained in:
24
panda/board/drivers/watchdog.h
Normal file
24
panda/board/drivers/watchdog.h
Normal file
@@ -0,0 +1,24 @@
|
||||
typedef enum {
|
||||
WATCHDOG_50_MS = (400U - 1U),
|
||||
WATCHDOG_500_MS = 4000U,
|
||||
} WatchdogTimeout;
|
||||
|
||||
void watchdog_feed(void) {
|
||||
IND_WDG->KR = 0xAAAAU;
|
||||
}
|
||||
|
||||
void watchdog_init(WatchdogTimeout timeout) {
|
||||
// enable watchdog
|
||||
IND_WDG->KR = 0xCCCCU;
|
||||
IND_WDG->KR = 0x5555U;
|
||||
|
||||
// 32KHz / 4 prescaler = 8000Hz
|
||||
register_set(&(IND_WDG->PR), 0x0U, IWDG_PR_PR_Msk);
|
||||
register_set(&(IND_WDG->RLR), timeout, IWDG_RLR_RL_Msk);
|
||||
|
||||
// wait for watchdog to be updated
|
||||
while (IND_WDG->SR != 0U);
|
||||
|
||||
// start the countdown
|
||||
watchdog_feed();
|
||||
}
|
||||
Reference in New Issue
Block a user