主程序活着比死了更难受!!!
所以没有"双向应答"机制的主程序强喂狗方式还是有漏洞的.
由于中断被无意关断,那么主程序实际就只干傻喂狗功能,这种不工作也不死的
程序要它何用???
所以我喜欢在主循环内刷新中断标志,即再次打开自己所需的全部中断.
在主循环内判中断进入标志(或中断进入次数)再喂狗.
或在主循环内设置主循环内驻留标志(表示中断是从主循环跳入的),再在中断中
"主程序不飞可是中断被关断"将会如何???
一般是定时中断(或OS的节拍中断)中喂狗,因为这种喂狗发生喂狗时间恒定,狗不得胃病.
中断中喂狗后清除那个主循环内驻留标志,这样:
1.如果主程序飞,则定时中断照常工作时,将收不到那个主循环内驻留标志,则不喂狗(硬件看门狗),若无硬件看门狗,则定时中断数次后,强行软件复位!!!(起到了软件看门狗的作用)
2.若主程序不飞,且主循环强制刷新中断标志,一般都能定时中断,即使不能中断,
则系统得不到喂狗,则硬件看门狗动作,系统复位.
从上2种情况分析,中断喂狗的好处还能兼职软件看门狗的作用!!!
|
http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=1998935
hotpower 发表于 2006-3-4 09:21 AVR 单片机 ←返回版面 | "狗在外面有吃的了,它回到家之后还会饿吗?"---回复00 |
狗吃肉的时候必须有主人在家中(主程序)的令牌,否则贪吃是会误大事的.
好狗肯定会在没得到令牌(主人已被敌人干倒)时,自尽殉葬主人的.
就像人酒后驾车一样的道理.
|
|
|
文章评论(0条评论)
登录后参与讨论