#ifdef __cplusplus
extern "C" {
#endif
void WDT_IRQHandler(void) {
WatchDog::instance().handleIRQ();
}
#ifdef __cplusplus
}
#endif
void WatchDog::handleIRQ() {
uint32_t wdt_status = Chip_WWDT_GetStatus(_reg);
// warning interrupt
if (wdt_status & WWDT_WDMOD_WDINT) {
if(_warning_fnc != NULL) {
_warning_fnc();
}
Chip_WWDT_ClearStatusFlag(_reg, WWDT_WDMOD_WDINT);
}
// timeout interrupt
if (wdt_status & WWDT_WDMOD_WDTOF) {
if(_timeout_fnc != NULL) {
_timeout_fnc();
}
Chip_WWDT_ClearStatusFlag(_reg, WWDT_WDMOD_WDTOF);
}
}
|