W77E58看门狗问题

[复制链接]
 楼主| summerlee 发表于 2007-6-21 12:05 | 显示全部楼层 |阅读模式
W77E58看门狗问题<br />我用的77E58,使用内部看门狗,外面使用阻容复位。发测试看门狗的时候,发现在该喂狗的地方不喂狗,发现确实就能复位,说明能起作用。但是使用过程中发现会死在某个地方,液晶屏上的显示死了,怎么复不了位了呢。我在所有循环中都加的喂狗,这样我感觉如果正好死在我不断喂狗的地方,那就是不能复位了,实际使用中真有可能正好死的地方还在不断地喂狗,那就是起不到效果。请问该怎么办?各位有没有高招啊。。。&nbsp;
ares_lan 发表于 2007-6-22 10:14 | 显示全部楼层

可靠的是加外部看问狗

  
chunyang 发表于 2007-6-22 13:19 | 显示全部楼层

喂狗程序设计方面的问题

狗不能随便喂,在主循环中单点喂。
 楼主| summerlee 发表于 2007-6-24 15:36 | 显示全部楼层

怎么个单点喂法?这是内部的。。请指导。。

  
chunyang 发表于 2007-6-25 10:08 | 显示全部楼层

“单点喂”就是在程序中只有一个地方喂狗

  
zhou63216 发表于 2007-6-27 21:13 | 显示全部楼层

请教楼上的朋友,如果按键长时间按住怎么解决单点喂狗问

  
chunyang 发表于 2007-6-27 22:29 | 显示全部楼层

难到长时间按键会让你的程序停止吗?

想想操作系统的机制,原则上,任何任务都不可以使程序“死循环”,这才是正确的编程思想。
zhou63216 发表于 2007-6-28 10:33 | 显示全部楼层

受益匪浅,看来还真不能把单片机编程简单化

  
chunyang 发表于 2007-6-28 11:09 | 显示全部楼层

现代MCU编程不讲究技巧,而要讲究结构

嵌入式实时操作系统的思想非常有借鉴价值。
东尧 发表于 2007-7-2 09:24 | 显示全部楼层

支持楼上

  
 楼主| summerlee 发表于 2007-7-3 19:50 | 显示全部楼层

请教春阳

单点喂狗怎么能做到?<br />稍微大点的程序,比如要有键盘,键盘里面有各个子菜单,在菜单功能里面要等待用户输入,退出后要再采样。。等等,每个分支的时间都是不定的,怎么可能只在一点上喂狗呢?<br />我以前用的外部看门狗倒是好办,用定时器出高,其他地方只要出低就行了,这样非常可靠。这个内部的看门狗就不能这么弄了。
mohanwei 发表于 2007-7-3 21:15 | 显示全部楼层

通过缓冲区来读键

简单点说,跟PC上差不多,通过getkey()等接口函数来判断有没有键。<br />而键盘的扫描则可以通过定时中断来做。
chunyang 发表于 2007-7-4 10:31 | 显示全部楼层

是编程思想的问题

首先你要做到,没有任何任务会独占CPU,非特殊情况(键盘处理决不是“特殊情况”),程序不准许在主循环以外的任何地方构成死循环。
 楼主| summerlee 发表于 2007-7-4 13:12 | 显示全部楼层

我说的也不是死循环

我说的意思是,有个延时退出键盘,比如30秒等等待,等待用户在操作菜单,如果没有操作就退出。那在这30秒的等待的过程中,程序不可能去运行主程序里面的喂狗,要是在这里不喂狗怎么办?<br /><br />有人说在定时器里做键盘,我不习惯那么做,我认为复杂的键盘功能不可能依赖定时器,况且定时器用来干别的了。
chunyang 发表于 2007-7-4 13:51 | 显示全部楼层

这已经属于“死”循环了

这样的编程思想实在太落后了,如此编程虽然简单但问题很大,包括软件的结构性、可移植性和系统可靠性等都不好。任务应采用寄存器做中间载体,键盘扫描和处理是各自独立的,建议还是学习一下软件工程和操作系统,不先解决思想问题拘泥于细节是无法理解的。手头的任务先做,罗马不是一天建成的,只要你有心,有一天你会理解我说的这些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

150

帖子

1

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

62

主题

150

帖子

1

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