打印

W77E58看门狗问题

[复制链接]
2790|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
summerlee|  楼主 | 2007-6-21 12:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
W77E58看门狗问题
我用的77E58,使用内部看门狗,外面使用阻容复位。发测试看门狗的时候,发现在该喂狗的地方不喂狗,发现确实就能复位,说明能起作用。但是使用过程中发现会死在某个地方,液晶屏上的显示死了,怎么复不了位了呢。我在所有循环中都加的喂狗,这样我感觉如果正好死在我不断喂狗的地方,那就是不能复位了,实际使用中真有可能正好死的地方还在不断地喂狗,那就是起不到效果。请问该怎么办?各位有没有高招啊。。。 

相关帖子

沙发
ares_lan| | 2007-6-22 10:14 | 只看该作者

可靠的是加外部看问狗

使用特权

评论回复
板凳
chunyang| | 2007-6-22 13:19 | 只看该作者

喂狗程序设计方面的问题

狗不能随便喂,在主循环中单点喂。

使用特权

评论回复
地板
summerlee|  楼主 | 2007-6-24 15:36 | 只看该作者

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

使用特权

评论回复
5
chunyang| | 2007-6-25 10:08 | 只看该作者

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

使用特权

评论回复
6
zhou63216| | 2007-6-27 21:13 | 只看该作者

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

使用特权

评论回复
7
chunyang| | 2007-6-27 22:29 | 只看该作者

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

想想操作系统的机制,原则上,任何任务都不可以使程序“死循环”,这才是正确的编程思想。

使用特权

评论回复
8
zhou63216| | 2007-6-28 10:33 | 只看该作者

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

使用特权

评论回复
9
chunyang| | 2007-6-28 11:09 | 只看该作者

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

嵌入式实时操作系统的思想非常有借鉴价值。

使用特权

评论回复
10
东尧| | 2007-7-2 09:24 | 只看该作者

支持楼上

使用特权

评论回复
11
summerlee|  楼主 | 2007-7-3 19:50 | 只看该作者

请教春阳

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

使用特权

评论回复
12
mohanwei| | 2007-7-3 21:15 | 只看该作者

通过缓冲区来读键

简单点说,跟PC上差不多,通过getkey()等接口函数来判断有没有键。
而键盘的扫描则可以通过定时中断来做。

使用特权

评论回复
13
chunyang| | 2007-7-4 10:31 | 只看该作者

是编程思想的问题

首先你要做到,没有任何任务会独占CPU,非特殊情况(键盘处理决不是“特殊情况”),程序不准许在主循环以外的任何地方构成死循环。

使用特权

评论回复
14
summerlee|  楼主 | 2007-7-4 13:12 | 只看该作者

我说的也不是死循环

我说的意思是,有个延时退出键盘,比如30秒等等待,等待用户在操作菜单,如果没有操作就退出。那在这30秒的等待的过程中,程序不可能去运行主程序里面的喂狗,要是在这里不喂狗怎么办?

有人说在定时器里做键盘,我不习惯那么做,我认为复杂的键盘功能不可能依赖定时器,况且定时器用来干别的了。

使用特权

评论回复
15
chunyang| | 2007-7-4 13:51 | 只看该作者

这已经属于“死”循环了

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

使用特权

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

本版积分规则

62

主题

150

帖子

1

粉丝