将看门狗中断配置成1秒1次,中断处理程序中,如果满足条件则不清除中断标志,使看门狗再次中断时复位系统;不满足复位条件则每次中断都清除标志;
逻辑比较清除,也是按照实例来做的,但就是不复位。
#define WD_PERIOD_MS 1000
#define MAP_SysCtlClockGet 80000000
#define MILLISECONDS_TO_TICKS(ms) ((MAP_SysCtlClockGet / 1000) * (ms))
初始化
WDT_IF_Init(WatchdogIntHandler, MILLISECONDS_TO_TICKS(WD_PERIOD_MS));
bRetcode = MAP_WatchdogRunning(WDT_BASE);
中断处理函数
void WatchdogIntHandler(void)
{
if(Fg_Reset == 1)
{
Fg_Reset = 0;
UART_PRINT("Reset Case of Wlan Overtime or Disconnect \r\n");
return;
}
else
{
MAP_WatchdogIntClear(WDT_BASE);
}
}