背景: #EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读文章

看门狗不起作用

[日期:2008-08-14] 来源:  作者:张春峰 [字体: ]

   通常,在单片机的工作现场,可能有各种干扰源。这些干扰源可能导致程序跑飞、造成程序不能正常运行甚至死机。如果不及时恢复或使系统复位,就可能造成损失。看门狗电路的作用就是在程序跑飞或者死机时,能有效地使系统复位以使系统恢复正常运行。


  笔者在设计制作的软连接绕箔条厚度检控仪时曾碰到过这个问题:一有串口通信发送数据时,单片机就死机了。该检控仪的电路结构如图3所示,按理说电路中外接有专用的看门狗电路X5045,单片机一死机就会被看门狗复位重新启动的,单片机怎么一死机就“死”了呢?

  用仿真运行很快就找到了引起单片机P89C54X2死机的原因——由于在串行口中断服务程序里有一条ANLSCON,#OFCH指令,也就是有个“清零”串行口发送中断请求标志TI的操作指令,致使发送程序中JNB TI,S判断程序跳不出去而造成“死锁”。

  原来,起初在用仿真器调试程序时对某些程序段作了“单步运行”的调试。顾名思义,“单步运行”就是一步一步地进行运行,自然,每步之间的运行都会有长短不一的时间间隔,这样如果打开“看门狗”,其定时器势必溢出,导致单片机常被复位初始化,为此在执行“单步运行”操作时就得关闭“看门狗”的作用,后来一直忘记了重新启用“看门狗”,以至出现上述问题。只要再改写X5045的状态寄存器的相关状态字就可激活启用看门狗了。

阅读:
录入:gddq

推荐 】 【 打印
上一篇:
下一篇:
相关文章      
本文评论       全部评论
发表你的见解、介绍你的维修经验


点评: 字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款