# 应用示例 WDT 可以配置成`复位模式`或者`中断模式`。`复位模式`在第一次超时的时候,就会发出复位脉冲;`中断模式`会在第一次超时情况下,发出中断请求,如果没有处理,第二次超时情况下,则会发出复位脉冲。 ### 复位模式 当 WDT 配置成复位模式后,如果在规定的时间内不进行喂狗,将会触发复位,参考代码: ```c int wdt_example(void) { // 参数一小于参数二使用的就是复位模式,5000ms(可能需要更久)之后就会触发复位 gx_watchdog_init(0, 5000, watchdog_irq_handler, NULL); /* 喂狗 */ gx_hal_watchdog_ping(&wdt_dev); } ``` :::{note} WDT 使能后,将无法关闭,除非通过时钟复位。 ::: ### 中断模式 当 WDT 配置成中断模式,第一次超时情况下,会发出中断请求,如果没有进行喂狗,在第二次超时的情况下,将会触发复位,参考代码: ```c int watchdog_irq_handler(int irq, void *pdata) { printf("watchdog level interrupt!\n"); gx_watchdog_ping(); return 0; } int wdt_example(void) { // 参数一大于参数二使用的就是中断模式,5000ms(可能需要更久)之后就会触发中断 gx_watchdog_init(10000, 5000, watchdog_irq_handler, NULL); } ``` 通过灵活选择**复位模式**或**中断模式**,WDT 可满足不同场景的系统保护需求,增强系统的稳定性和容错能力。