程序每个1天左右必看门狗复位一次,不知为何?求各位指教

[复制链接]
4538|12
 楼主| hwk612167 发表于 2011-9-5 12:42 | 显示全部楼层 |阅读模式
现在发现上电复位后过10到30小时,MCU必然看门狗复位,且LCD显示3,即在运行完子程序B之后就出现看门狗复位?程序B返回后PC跑飞了??debug了2天毫无收获,求各位大大指教,谢谢!相关程序大致结构如下:
整个结构为一个状态机,现程序一直在运行状态FuncA,FuncA中除了休眠1秒时间外,其它程序平时占用时间约为1-10ms。
_no_init INT8U gu8_test;
void FuncB(INT32U u32_dgt, INT8U_P pu8_bcd)
{
  '''
  '''
  gu8_test = 3;
}
void FuncA(void)
{
  INT32U u32_dgt;
  INT8U au8_buf[7];
  ...
  gu8_test = 1;
  FuncB(u32_dgt, (INT8U_P)au8_buf);
  gu8_test = 2;
  ...
  MCU_sleep_s(1);
}

int main(void)
{
   若判断得为看门狗复位,则LCD显示gu8_test;否则程序正常运行。
}
 楼主| hwk612167 发表于 2011-9-5 12:50 | 显示全部楼层
补充:gu8_test在程序复位后若判断不为看门狗复位,则会清0该变量。程序其它地方绝对没有将gu8_test设为3。
nino_1 发表于 2011-9-5 15:53 | 显示全部楼层
问:喂狗的判断条件是什么?
airwill 发表于 2011-9-5 16:31 | 显示全部楼层
频率这么低, 通常有两种可能.
1. 外界干扰.  排除和测试办法, 增加干扰源信号, 看是否看门狗复位的频率会改变.
2. 软件缺陷. 不知道你的看门狗动作时间设置为多少? 是否与 1S 距离不太大.
由于mcu 的看门狗定时器通常精度很差, 所以通常要把喂狗间隔设为最小狗动作时间的 3/4 以内.
测试办法, 把 MCU_sleep_s(1); 休眠 1 秒改成 500ms 或者 800ms 等等, 看是否已经不出现狗复位了?
 楼主| hwk612167 发表于 2011-9-5 18:19 | 显示全部楼层
回Ls各位,休眠函数内部是 500ms喂一次,比较器定时。
实际我程序是mcu_sleep_500ms(2);
 楼主| hwk612167 发表于 2011-9-6 08:51 | 显示全部楼层
【补充】__no_init volatile INT8U gu8_test; //实际程序是这样写的
原野之狼 发表于 2011-9-6 10:27 | 显示全部楼层
1 先找个好点的环境来测试。
2 看看电源的信号质量怎么样。
3 软件上加入各种调试信息来捕捉异常。
我估计是软件的BUG,你可以把软件精简到只剩下喂狗操作。
ayb_ice 发表于 2011-9-6 11:09 | 显示全部楼层
喂饱点是不会咬人的
 楼主| hwk612167 发表于 2011-9-6 12:21 | 显示全部楼层
2节干电池供电,电量充足,工作环境就是在办公室了
 楼主| hwk612167 发表于 2011-9-6 12:24 | 显示全部楼层
void FuncB(INT32U u32_dgt, INT8U_P pu8_bcd)
{
  '''
  '''
  gu8_test = 3;
gu8_test = 4;
gu8_test = 5;
gu8_test = 6;
。。。
gu8_test = 10;
}
我在FuncB后加了几条语句,过了一天,LCD显示10。
奇怪的是当天我9点上电复位,到下班也没有异常,我下午上电复位,到第2天也要大概中午以后才出现异常。
只有慢慢调试了
aihe 发表于 2011-9-6 19:23 | 显示全部楼层
狗的问题是假象,是不是有什么数溢出了
 楼主| hwk612167 发表于 2011-9-7 08:26 | 显示全部楼层
昨天把狗关了 ,今天看结果
liuyuxiier 发表于 2011-9-30 21:50 | 显示全部楼层
不知楼主的问题解决了没有~
以前我也碰到过一次这种问题,没有仿真器,为了查清楚原因,在复位以后,在串口输出一串字符,然后连接至PC,通电观察,发现每次工作的时间都是固定的N小时(时间久,记不清了),前后不超过2秒的误差。
最终发现问题出在单片机的一个悬空的引脚上,这个悬空的引脚对工频信号进行了计数,我的底层程序以前是别的项目移植过来的,这个悬空引脚刚好是内部计数器的输入,计数器中断打开却没有写中断服务函数,所以经过了N个小时以后出现了狗饿了咬人的情况
希望对楼主有帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:前进 前进 前进

20

主题

511

帖子

3

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