打印
[DemoCode下载]

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

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

沙发
gaoyang9992006| | 2015-7-14 21:03 | 只看该作者
喂狗一定要在主函数喂狗,中断实际上是另外一个工作区完成的,跟主函数跑飞没有,没有一毛钱的关系。

使用特权

评论回复
板凳
春风的暖暖|  楼主 | 2015-7-14 21:06 | 只看该作者
gaoyang9992006 发表于 2015-7-14 21:03
喂狗一定要在主函数喂狗,中断实际上是另外一个工作区完成的,跟主函数跑飞没有,没有一毛钱的关系。 ...

说的有道理啊,致谢

使用特权

评论回复
地板
玛尼玛尼哄| | 2015-7-14 21:08 | 只看该作者
上次就有人说,他的中断还正常啊,怎么发送乱码跑飞了,估计就是这个问题,后来就是喂狗没有位对地方。

使用特权

评论回复
5
小猫爱吃鱼| | 2015-7-14 21:32 | 只看该作者
喂狗确实很重要的操作啊

使用特权

评论回复
6
yiyigirl2014| | 2015-7-14 22:16 | 只看该作者
定义个全局变量,在中断时钟里计数,然后在主函数判断计数值,然后喂狗。

使用特权

评论回复
7
gaoyang9992006| | 2015-7-15 08:24 | 只看该作者
春风的暖暖 发表于 2015-7-14 21:06
说的有道理啊,致谢

:lol我就是说一下我的经验,谢谢赞同。

使用特权

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

本版积分规则

37

主题

306

帖子

2

粉丝