打印

MCU死机+外部看门狗 不能恢复 何故?

[复制链接]
5109|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ningling_21|  楼主 | 2013-1-28 22:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
8051F340+外部看门狗的系统。
驱动继电器继而控制两个交流风扇。当继电器的某一次吸合或断开时,单片机死机,现象:数码管只显示一位,其它部分均停止工作。但看门狗喂狗信号仍有。
按键手动复位后正常工作。
喂狗操作只在主程序中有。

相关帖子

沙发
NE5532| | 2013-1-28 22:44 | 只看该作者
这就是没死,数据跑乱了而已。

使用特权

评论回复
板凳
HWM| | 2013-1-28 22:50 | 只看该作者
“喂狗”的位置放置不合理。一般应放置在主循环必经之处。

使用特权

评论回复
地板
ningling_21|  楼主 | 2013-1-28 23:11 | 只看该作者
HWM 发表于 2013-1-28 22:50
“喂狗”的位置放置不合理。一般应放置在主循环必经之处。

喂狗是在主主循环的必经之路的...

使用特权

评论回复
5
ningling_21|  楼主 | 2013-1-28 23:32 | 只看该作者
NE5532 发表于 2013-1-28 22:44
这就是没死,数据跑乱了而已。

该如何解决?

使用特权

评论回复
6
ayb_ice| | 2013-1-29 07:58 | 只看该作者
这狗没有养对,
进入局部死循环了

使用特权

评论回复
7
NE5532| | 2013-1-29 08:17 | 只看该作者
ningling_21 发表于 2013-1-28 23:32
该如何解决?

要么去找问题,要么把整个程序拿来清,肯定有不按规矩办事的地方。

使用特权

评论回复
8
HWM| | 2013-1-29 08:34 | 只看该作者
ningling_21 发表于 2013-1-28 23:11
喂狗是在主主循环的必经之路的...

必须是整个程序的“主循环”,一般在此通路上进入各模块会对模块局部变量复位初态或赋予输入值。只要保证系统全局量的合理设置,主循环内“喂狗”一般不可能出现因程序“跑偏”而导致的“死机”。

另外,注意别“喂多”了。

使用特权

评论回复
9
ningling_21|  楼主 | 2013-1-29 19:49 | 只看该作者
HWM 发表于 2013-1-29 08:34
必须是整个程序的“主循环”,一般在此通路上进入各模块会对模块局部变量复位初态或赋予输入值。只要保证 ...

是由于继电器动作的时候产生死机的现象,有时会自行复位,经测量在继电器动作的同时RST引脚上有一串的脉冲群出现...

使用特权

评论回复
10
ningling_21|  楼主 | 2013-1-29 19:56 | 只看该作者
现在发现死机有两种情况,1.死机时仍在不停的喂狗;
2.死机时没有喂狗,看门狗已反复输出复位脉冲600MS,但单片机没有复位,仍处于死机状态。

使用特权

评论回复
11
gdf0227| | 2013-2-3 23:13 | 只看该作者
1.对程序的关键变量(如寄存器值,关键变量值等)在主循环中每次对比是否发生了不该有的变化,有则复位.
2.对程序的业务进行分析,分清楚哪些业务是周期必须执行的,进行条件喂狗,如在一段时间内主循环中未检测到此周期性业务发生,复位

使用特权

评论回复
12
astudent| | 2013-2-4 08:20 | 只看该作者
死机难解决

使用特权

评论回复
13
江枫渔火| | 2013-2-4 14:45 | 只看该作者
继电器要吸收下自感。

使用特权

评论回复
14
受不了了| | 2013-2-4 15:25 | 只看该作者
写一段最简单的程序就只控制继电器吸合脱开,看单片机还死不

使用特权

评论回复
15
谈的元| | 2013-2-5 00:37 | 只看该作者
主程序中  请加入    输入输出端口 设置,不要初始化一次就完了

使用特权

评论回复
16
ningling_21|  楼主 | 2013-3-4 23:06 | 只看该作者
把继电器改为可控硅控制风扇,已解决

使用特权

评论回复
17
astudent| | 2013-3-8 09:16 | 只看该作者
ningling_21 发表于 2013-3-4 23:06
把继电器改为可控硅控制风扇,已解决

是不是成本要高一些。

使用特权

评论回复
18
lrhsx33| | 2013-3-8 10:13 | 只看该作者
还有一种可能就是MCU品质有问题,早期MCU在电压波动大的时候会硬件死机

使用特权

评论回复
19
老老实实| | 2013-3-8 13:01 | 只看该作者
我也觉的是程序没死,肯定程序的数据指针错了,可以从最简单的程序开始调试。一步一步查到问题。

使用特权

评论回复
20
ningling_21|  楼主 | 2013-3-8 22:10 | 只看该作者
lrhsx33 发表于 2013-3-8 10:13
还有一种可能就是MCU品质有问题,早期MCU在电压波动大的时候会硬件死机

那要看波动有多大,大道一定程度任何单片机都会出问题...

使用特权

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

本版积分规则

5013

主题

17712

帖子

51

粉丝