打印

W77E58的内部看门狗的问题...

[复制链接]
2289|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
summerlee|  楼主 | 2007-5-4 18:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
W77E58的内部看门狗是往WTD寄存器里不断地送55和AA,我测试过好用,但是问题是,如果一旦程序死在某的地方,都在那里出55和AA,那就起不到复位作用,我感觉,正确的做法应该是,在定时器里出一个状态比如55,在主程序或需要延时的地方出AA,这样保证不会因为死在不断出AA和55而不复位.我以前用外部看门狗的时候就是这么喂狗的,但这里不行,不知道大家都怎么喂内部狗,请教了啊...

相关帖子

沙发
chunyang| | 2007-5-5 13:55 | 只看该作者

合理的喂狗方法跟芯片无关

无论是硬件喂狗还是指令喂狗,保证可靠性的方法完全相同,跟平台无关,你的喂狗方法显然有问题,正确的做法不能用定时器,而是要根据程序结构合理设置。

使用特权

评论回复
板凳
雨亭工作室| | 2007-5-7 03:40 | 只看该作者

同意楼上的说法

能用定时器喂狗是为了图省事。这种做法要不得。搞开发必须要有耐心才行。

使用特权

评论回复
地板
summerlee|  楼主 | 2007-5-8 06:25 | 只看该作者

谢谢楼上

不过可能楼上老师并不了解我的定时器的用法,可能我表达的不清楚,是这样:
比如用口线给外部看门狗喂狗:需要不断地出一高一低的脉冲。那么我在定时器里只出高,在主程里只出低,这样程序跑飞到任何地方的时候都只能有高或低,不可能同时出现脉冲,保证了复位的可靠,避免了跑飞到的地方还有喂狗而不复位的情况。

我说的内部看门狗的情况也想这样做,但是不行,理论上可以和上述做法一样,但是不行啊,不知道什么原因。。。请指导。。

使用特权

评论回复
5
chunyang| | 2007-5-8 09:12 | 只看该作者

对于多数应用,主程序循环里加一条喂狗指令即可

不论程序多大,仅此。

使用特权

评论回复
6
summerlee|  楼主 | 2007-5-8 09:25 | 只看该作者

楼上说的太简单了吧。。。

有时候程序需要调用延时子函数,所以在延时子程序里面也需要喂狗,但却是不是简单的出个脉冲就可以了,要预防万一跑飞到此段喂狗的程序里,狗还在喂着,但不复位。。。。

使用特权

评论回复
7
chunyang| | 2007-5-8 09:38 | 只看该作者

具体应用要具体分析

合理的喂狗是有讲究的,楼上的特例如果是不得以而必须为之,延时函数里当然得加喂狗指令,但不是凡事如此,程序的结构才是首要的。

使用特权

评论回复
8
江门表哥| | 2007-5-16 22:17 | 只看该作者

W77E58的内部看门狗的问题...

不懂..我是做手机终端的

使用特权

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

本版积分规则

62

主题

150

帖子

1

粉丝