单片机容易死机,用看门狗了还会死机,请高手请指点,
用在220V逆变器自动控制与电力整流后的地线共同GND,
另我做了一个电机转速测量的单片数码显示3位七段LED的单独用5V电池电源也会死机,这说明不是电源问题,我是用台湾义隆78P458单片机.看门狗放在主程序里清零.常看到显示数据不动,转速在转.
500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/66/109541213357019.gif');}" onmousewheel="return imgzoom(this);">500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/66/109541213357100.gif');}" onmousewheel="return imgzoom(this);">
下面是程序只有170条指令 109541213357294.xls
单片机容易死机,用看门狗了还会死机,请高手请指点
全部回复(32)
正序查看
倒序查看
现在还没有回复呢,说说你的想法
@listenwinds
以我个人的经验来看,单片机的死机无非就是:电源的不稳定,杂讯的干扰,程序的跑飞,我觉得重点看电源是否稳定--你可以单独用电源供,以测试是否为电源的问题程序跑飞=主要是逻辑的问题,,很多时候进入死循环了,看门狗无法清0,就死了,,这个看加条清看门狗的指令在你认为可能跑飞的程序段中调试啦
还有点,单独电源不一定是好的,
因为你内部有干扰呵,我之前也碰到这样的问题,
主要是数字地和模拟地没处理好,导致单片机死机,
后来我把地线分开分别单独接地,采用最短地,杂讯全部往退偶电容处,,
另外,你看门狗放主程序查这个问题应该用处不大的,很明显是你的程序可能在某个小程序运行时间过长,就会造成循环回来的时候看门狗还没用清而reset,
你那个layout太烂了点吧,,兄弟
因为你内部有干扰呵,我之前也碰到这样的问题,
主要是数字地和模拟地没处理好,导致单片机死机,
后来我把地线分开分别单独接地,采用最短地,杂讯全部往退偶电容处,,
另外,你看门狗放主程序查这个问题应该用处不大的,很明显是你的程序可能在某个小程序运行时间过长,就会造成循环回来的时候看门狗还没用清而reset,
你那个layout太烂了点吧,,兄弟
0
回复
提示
@listenwinds
还有点,单独电源不一定是好的,因为你内部有干扰呵,我之前也碰到这样的问题,主要是数字地和模拟地没处理好,导致单片机死机,后来我把地线分开分别单独接地,采用最短地,杂讯全部往退偶电容处,,另外,你看门狗放主程序查这个问题应该用处不大的,很明显是你的程序可能在某个小程序运行时间过长,就会造成循环回来的时候看门狗还没用清而reset,你那个layout太烂了点吧,,兄弟
看门狗不放主程序,放在什么地方?放中断里?程序跑飞引起死机,看门狗丝毫不起作用.好的程序实时性要好,一个程序执行一个循环要超过100MS就是一个不合格的程序.
0
回复
提示
@ddmushroom
这个板画得....地线都要成环了在单片机下面铺整块铜做参考地,去耦电容和晶振离脚近点,继电器电源不要和单片机共用
这个电路板做得还可以吧,请多指点500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/84/109541261458113.jpg');}" onmousewheel="return imgzoom(this);">
0
回复
提示