打印
[文档下载]

新唐M051看门狗使用注意事项

[复制链接]
1124|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hearstnorman323|  楼主 | 2024-3-10 07:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、不能够在中断函数中喂狗,因为即使程序跑飞了,中断模块和中断函数依然能够正常运行,如果在中断函数里面喂狗,即使跑飞,也有可能因为在中断函数(比如定时器中断)中喂了狗而不产生复位信号,因为外设的运行有时可以独立于程序。
2、喂狗之前记得要对寄存器进行解锁操作unlock,喂狗之后要进行加锁lock。
3、关于看门狗寄存器的所有操作都要有解锁(unlock)的操作,为了方便区分起见,最好对看门狗初始化之前就要解锁(unlock),初始化后加锁(lock)。关于看门狗的中断函数也要做同样的操作,先解锁(unlock),然后清除相关标志位,保证操作有效。
4、在主程序的每一个处理流程都要适当添加一些喂狗指令
5、对于长延迟的函数,要注意喂狗方式,假如你在进行某个操作1.8秒,如下图,全局变量countMs是在Timer0定时器1ms的中断函数中进行自加,在主函数中用查询方式来确认是否大概达到你要求的时间,以下是每50ms喂狗一次,因为在看门狗初始化时,看门狗定时器是102.4ms溢出一次。

使用特权

评论回复
沙发
xinpian101| | 2024-3-10 15:57 | 只看该作者
是的,中断和主程序是两个体系。

使用特权

评论回复
板凳
micoccd| | 2024-3-11 13:11 | 只看该作者
还是要放在出函数里面的

使用特权

评论回复
地板
xxy9527| | 2024-5-3 16:33 | 只看该作者
我看51系列的看门狗好像有两种方式,可以使能中断,这样超时后会进入中断函数里。也可以不使能中断,这样超时后会reset。但是我在实际用的时候,不使能中断的时候,超时了也不会reset,是什么原因呢?我参照官方给出的库函数看门狗用法也无法触发看门狗超时reset。

使用特权

评论回复
5
Henryko| | 2024-5-8 21:23 | 只看该作者
不能在中断函数里喂狗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

1313

帖子

1

粉丝