找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1286|回复: 0
打印 上一主题 下一主题
收起左侧

关于单片机看门狗学习

[复制链接]
跳转到指定楼层
楼主
ID:555743 发表于 2019-6-7 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我先试着搜了搜,看到了一位大佬的精辟讲解,哈哈哈,谢谢大佬这里引用一下:


看门狗其实就是这么回事:
比如说你正在绕着一座小山裸奔。——程序按预定流程执行。
每次经过山脚下的某个地方,你都给一条大狼狗一根肉骨头。——喂狗。
奔着奔着,你奔叉了道,跑到了不该去的山顶。——程序跑飞了。
或者,你在裸奔的途中睡着了。——程序死机。
这时,那条大狼狗,由于一直得不到喂食,饿疯了,挣脱锁链来追你。——看门狗定时器溢出。
你被它一吓,脚底一软,从山上咕噜咕噜滚下来。起来一看,靠,又回到了出发地点。于是只好又从头开始裸奔。——程序复位。


下面我也借鉴了一下搜狗的知识:
看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到mcu的rst端,mcu正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 wdt 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),wdt 定时超过,就回给出一个复位信号到mcu,是mcu复位. 防止mcu死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。(这个讲解就更加专业一些,也让我理解更加深刻了)
(我在我目前正在学习的中微的芯片数据手册上看到的,希望之后的实践中会加深理解)
注: 1. 若使用 WDT 功能,一定要在程序的某些地方放置“CLRWDT”指令,以保证在 WDT 溢出前能被清 零。否则会使芯片不停的复位,造成系统无法正常工作。
2. 不能在中断程序中对 WDT 进行清零,否则无法侦测到主程序“跑飞”的情况。
3. 程序中应在主程序中有一次清 WDT 的操作,尽量不要在多个分支中清零 WDT,这种架构能最大限度 发挥看门狗计数器的保护功能。
4. 看门狗计数器不同芯片的溢出时间有一定差异,所以设置清 WDT 时间时,应与 WDT 的溢出时间有较 大的冗余,以避免出现不必要的 WDT 复位。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表