亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

理解看门狗定时器:如何防止单片机死机卡死

组件与材料

软件与在线服务

项目简介

单片机陷入死循环或因软硬件故障卡死时,常规排查只能按复位键。但能否让硬件自动复位?答案是看门狗定时器(Watchdog Timer, WDT)。

“看门狗定时器是一种硬件定时器,若主程序未按时喂狗(服务),自动触发系统复位,用于自动恢复因软硬件故障卡死的嵌入式设备。”(来源:os.mbed.com/cookbook/WatchDog-Timer)

喂狗原理

如同养狗需定时喂食,否则会咬人。主程序 loop() 循环运行,启用 WDT 并设定超时时间大于主循环最大耗时。每次循环调用 wdt_reset() 喂狗。若程序卡死未喂狗,WDT 计数归零触发复位中断,单片机重启。

理解看门狗定时器:如何防止单片机死机卡死

Arduino UNO 搭载 ATmega328P,内置看门狗定时器。

理解看门狗定时器:如何防止单片机死机卡死

库文件

#include <avr/wdt.h>

启用看门狗

wdt_enable(WDTO_时间);

可选超时:15ms、30ms、60ms、120ms、250ms、500ms、1s、2s、4s、8s(对应 WDTO_15MS 至 WDTO_8S)。

理解看门狗定时器:如何防止单片机死机卡死

示例:wdt_enable(WDTO_4S); 启用 4 秒看门狗。

喂狗(复位计数器)

wdt_reset();

置于 loop() 中。若某 delay() 超过 WDT 超时,需在 delay 前喂狗,否则复位发生在 delay 完成前。

禁用看门狗

wdt_disable();

示例代码

#include <avr/wdt.h>

void setup() {
  Serial.begin(9600);
  Serial.println("Setup started :");
  delay(2000);          // 启动延时,完成初始化再喂狗
  wdt_enable(WDTO_4S);  // 启用 4 秒看门狗
}

void loop() {
  Serial.println("LOOP started !");
  for (int i = 0; i <= 5; i++) {
    Serial.print("Loop : ");
    Serial.print(i);
    Serial.println();
    delay(1000);
    wdt_reset();        // 每秒喂狗
  }
  // 人为制造死循环,触发看门狗复位
  while (1) {}
}

运行现象

理解看门狗定时器:如何防止单片机死机卡死

程序运行 5 次循环后进入 while(1) 死循环,约 4 秒后看门狗触发复位,串口重复打印 “Setup started :” 与前 5 次循环,验证看门狗有效。

欢迎在评论区留下反馈、提问与讨论。

完整代码

#include <avr/wdt.h>
void setup() {
  Serial.begin(9600);
  Serial.println("Setup started :");
  delay(2000);
  wdt_enable(WDTO_4S);
}
void loop() {
  Serial.println("LOOP started !");
  for (int i = 0; i <= 5; i++) {
    Serial.print("Loop : ");
    Serial.print(i);
    Serial.println();
    delay(1000);
    wdt_reset();
  }
  while (1) {}
}

制造工艺

  1. 嵌件成型工艺详解:多材料一体化生产的提效降本利器
  2. 原型验证:初创关键里程碑全解析
  3. 线性电机原理与演进:从电能到精密直线运动的技术演变
  4. CNC车削详解:高品质零件的精密制造工艺
  5. 走进铸造厂:金属如何成为现代工业基石
  6. 多级泵深度解析:原理、用途与效益
  7. 冲压送料机详解:原理、功能与工业应用
  8. 潜水泵全解析:工作原理、分类、选型场景与核心优势
  9. 饮料机器人:自动化技术重塑饮品服务新体验
  10. 机械压力机:功能、类型与工业应用详解
  11. 伺服电机深度解析:工作原理、分类与核心价值
  12. 动力卡盘全解析:定义、用途与核心优势