[信息发布] ATtiny85 看门狗导致频繁复位的解决办法

[复制链接]
973|4
 楼主| 水星限定 发表于 2025-7-7 18:51 | 显示全部楼层 |阅读模式
[color=rgba(0, 0, 0, 0.85)]ATtiny85 的看门狗定时器设置为 16ms 超时,主循环来不及喂狗就复位了,有什么好的处理方案?
迷雾隐者 发表于 2025-7-9 13:52 | 显示全部楼层
可以尝试增加看门狗定时器的超时时间,或者优化代码减少主循环的执行时间。
dffzh 发表于 2025-7-11 17:17 | 显示全部楼层
解决办法:
1、看看还能不能加长看门狗超时时间;
2、可以在多个地方增加喂狗处理,不一定就在main循环里喂狗一次,这种方式在代码上有些冗余,但可以使用;
3、如果MCU有资源,且不影响应用功能,那可以加一个1ms左右的定时器中断,在这个中断里执行喂狗处理。

玫瑰凋零日记 发表于 2025-8-27 13:10 | 显示全部楼层
检查初始化:确保正确配置 WDTCR 寄存器,避免误设过短超时(如仅 4ms),根据需求选 1s 等合理时长。
及时喂狗:主循环或关键任务中按超时周期调用 WDT 复位指令(如 wdt_reset ()),防止超时。
排查冲突:禁用中断时需缩短禁用时长,避免中断阻塞喂狗;检查电源,防止电压不稳触发 WDT 误复位。
四十四次日落 发表于 2025-9-27 15:30 | 显示全部楼层
ATtiny85 看门狗频繁复位,可检查:1. 未及时喂狗,需在超时前用 WDR 指令刷新;2. 超时设置过短,通过 WDTCR 寄存器调整分频系数延长;3. 电源波动触发,加滤波电容。禁用方法:写 WDTCR 时先置位 WDCE 和 WDE,再清零 WDE 位,操作需严格按时序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

101

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部