122402902 发表于 2012-8-19 12:33:44

看门狗的具体应用求教

写程序已经有两年了对看门狗的使用目前仍然寸有疑惑,望各位高手不吝赤教。

本人现在的程序是采用状态机在大循环进行喂狗的但是程序运行起来比较麻烦,特别是遇到比如显示需要延长更新的时候就更难处理了。因为我的程序可能进入一个处理状态的时间会很长。

想请问大家有没有更好的处理方式。

Gorgon_Meducer 发表于 2012-8-20 17:26:03

其实不太明白的具体问题是什么,能详细说明下:
什么叫做“比如显示需要延长更新的时候”

younge 发表于 2012-8-20 20:45:20

个人认为,在每一个延时循环喂一下狗,每个中断里面喂一次狗,应该就没什么了

Gorgon_Meducer 发表于 2012-8-20 20:58:25

younge 发表于 2012-8-20 20:45 static/image/common/back.gif
个人认为,在每一个延时循环喂一下狗,每个中断里面喂一次狗,应该就没什么了 ...

在你应用中,什么情况下会使用看门狗?为了预防什么情况呢?

younge 发表于 2012-8-20 23:05:41

Gorgon_Meducer 发表于 2012-8-20 20:58 static/image/common/back.gif
在你应用中,什么情况下会使用看门狗?为了预防什么情况呢?

呵呵,我还没用过看门狗,不过马上要给生产线做一个小烧写器,我计划这样实施。

Gorgon_Meducer 发表于 2012-8-21 09:23:44

younge 发表于 2012-8-20 23:05 static/image/common/back.gif
呵呵,我还没用过看门狗,不过马上要给生产线做一个小烧写器,我计划这样实施。
...

我不太了解你的具体应用环境,但是我感觉你这样应用可能有点问题。我觉得你需要想清楚我之
前提的问题,然后再用,否则狗容易形同虚设。论坛里面有一位前辈曾经非常仔细深入的探讨了
狗的使用,你的这种想法很典型,他应该是有过建议的。

122402902 发表于 2012-8-21 09:37:41

傻大师:
我的问题的是这样子的。在我的程序处理流程中。按照正常的如果按照时间片来进行任务的处理的话。我可以正常的在大循环内进行喂狗。 但是现在我现在的程序处理的话是完全采用的顺序结构,就是运行到哪里如果遇到现实要更新的话就进行显示更新,如果要延时几S更新就延时几秒。这样子的情况下整个大循环的时间就超过了喂狗的时间里。想这种情况下喂狗的指令该如何去插入。

另外,如果采用时间片的形式去做的话。显示的话就要在RAM里面单独去开一个buffer。感觉不太可靠。

我的程序主要是用于户外的环境监测,是长期无人监守的设备。这种情况下就要放看门狗进行自动复位了。

忘大师点拨一二

Gorgon_Meducer 发表于 2012-8-21 11:14:51

122402902 发表于 2012-8-21 09:37 static/image/common/back.gif
傻大师:
我的问题的是这样子的。在我的程序处理流程中。按照正常的如果按照时间片来进行任务的处理的话。 ...

你的代码是阻塞式的,也就是你说的,要延时就延时……你用状态机改成非阻塞式的就OK了。

younge 发表于 2012-8-21 20:11:08

本帖最后由 younge 于 2012-8-21 20:26 编辑

Gorgon_Meducer 发表于 2012-8-21 09:23 static/image/common/back.gif
我不太了解你的具体应用环境,但是我感觉你这样应用可能有点问题。我觉得你需要想清楚我之
前提的问题, ...

呵呵,谢谢傻孩子大师的指导,我搜索学习下




找了会儿,没找到哪位大师。先关注此贴,低调学习

xiaojiong886 发表于 2012-8-22 08:37:35

{:smile:}有这种问题吗,我用的编译器是CVAVR,采用delay_ms()貌似编译器会自动加入喂狗程序。。

122402902 发表于 2012-8-22 10:05:04

不胜感激 马上重新架构程序
页: [1]
查看完整版本: 看门狗的具体应用求教