PIC单片机死机复位问题
您好。我在使用pic16f690的时候遇到这样一个问题。一开始单片机工作的时候会死机,后来我就加了看门狗。加了看门狗后有的时候死机能复位,有的时候却无法复位。我查过程序,...
您好。我在使用pic16f690的时候遇到这样一个问题。一开始单片机工作的时候会死机,后来我就加了看门狗。加了看门狗后有的时候死机能复位,有的时候却无法复位。我查过程序,程序中没有死循环中喂狗的情况。为什么有的时候死机不复位呢?求大神指点
展开
1个回答
2014-06-08
展开全部
没听说过死循环中不能喂狗的说法。只是知道某些情况下不能在中断子程序里喂狗。
为了保障系统的可用性,看门狗是必须要使用的。
但你在使用看门狗之前,应该把死机的原因搞清楚。是电路设计问题,还是线路板布局问题,还是程序写得有问题。
“死机不复位”的问题,你也要分析清楚缘由,如果死机的时候是否仍在喂狗,如果是这个情况,说明你的程序有问题。再就是看看手动复位能否工作。
某些比较严苛的环境下,只能使用外部看门狗。只是不知你的具体情况,没法帮到你。
为了保障系统的可用性,看门狗是必须要使用的。
但你在使用看门狗之前,应该把死机的原因搞清楚。是电路设计问题,还是线路板布局问题,还是程序写得有问题。
“死机不复位”的问题,你也要分析清楚缘由,如果死机的时候是否仍在喂狗,如果是这个情况,说明你的程序有问题。再就是看看手动复位能否工作。
某些比较严苛的环境下,只能使用外部看门狗。只是不知你的具体情况,没法帮到你。
更多追问追答
追问
具体情况是这样的,我通过上位机控制单片机板子485通许,发送命令使电机转动,并每两百毫秒询问电机状态。单片机控制板是通过PWM模块控制电机转速。死机情况是这样的,有的时候电机高速旋转,通讯失联。有的时候电机保持原来的速度,但是通讯失联。这可能是什么原因呢?
追答
“有的时候电机高速旋转,通讯失联。“
你说的是不是电机转速失控了,而且通讯失败?
如果是这种情况,很可能是受干扰了,而单片机的PWM输出为100%,于是电机高速旋转。是否受干扰导致单片机程序乱飞,你可以用一个引脚定时输出1秒周期的脉冲,接个LED,仔细观察LED的闪烁情况就可以看出来。干扰源很大的可能是你的电机。
”有的时候电机保持原来的速度,但是通讯失联。这可能是什么原因呢?”
这个比较复杂,既然电机工作速度正常,说明输出的PWM信号是正常的,也就是说单片机还在正常工作。那么剩下的问题除了485传输线路上的问题之外,就是你的单片机串行接收程序存在问题了。一般来说,485线路的抗干扰能力还是足够的,最多也就是加个屏蔽。至于串行接收程序部分,也不知你的通讯协议如何。
比较迷糊的是,你前面说的“有的时候电机高速旋转,通讯失联。“是指在发送了命令之后出现的情况,还是别的什么。
还有就是,你提到是上位机,俺就当PC机好了(也可能是其他设备),PC机和485收发模块之间最好是光电隔离的,不然PC机的干扰也要考虑···
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询