[文档下载] 新唐M051看门狗使用注意事项

[复制链接]
1500|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。
Henryko 发表于 2024-5-8 21:23 | 显示全部楼层
不能在中断函数里喂狗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

1607

帖子

2

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