标题单片机使程序跑飞或进入死循环,如何利用看门狗摆脱困境

标题单片机使程序跑飞或进入死循环,如何利用看门狗摆脱困境,第1张

可采用看门狗定时器。

工作原理如下:“看门狗”技术就是使用一个“看门狗”定时器来对系统时钟不断计数,监视程序的运行。当看门狗定时器启动运行后,为防止看门狗定时器的不必要溢出而引起单片机的非正常的复位,应定期地把看门狗定时器清0,以保证看门狗定时器不溢出。当由于干扰,使单片机程序“跑飞”或陷入“死循环”时,单片机也就不能正常运行程序来定时地把看门狗定时器清0,当看门狗定时器计满溢出时,将在AT89S52的RST引脚上输出一个正脉冲(宽度为98个时钟周期),使单片机复位,在系统的复位入口0000H处重新开始执行主程序,从而使程序摆脱“跑飞”或“死循环”状态,让单片机归复于正常的工作状态。

程序跑飞是指系统受到某种干扰后,程序计数器PC的值偏离了给定的唯一变化历程,导致程序运行偏离正常的运行路径程序跑飞因素及后果往往是不可预计的在很多情况下,程序跑飞后系统会进入死循环而导致死机

霍尔传感器返回的是脉冲信号么?

如果是脉冲信号并且转速不是太快的话可以采用外部中断。

你采用定时器中断也是可以的。但是要注意:一、配置的时候建议你将IO采集口设置为下拉,IPD。浮空可能因为你的信号不稳定而产生干扰。二、设定你的中断优先级。哪个更优先的问题,因为你采样两组脉冲,建议使用响应式中断,不要采用抢占式。

程序本来是按设定运行的,如你编的程序在存储器中的地址是0-1000,由于某种原因 (干 扰或程序漏洞),程序运行在了1000之后的区域,就 是程序“跑飞”

这里面可不是你要的代码,根你设定的运行过程毫无关系,也许只有运行完了(程序计数器加到 最大值后自动清0),才能回到程序的开头,也许死在某个地方,永远回不来了

这时如果有看门狗,就可以复位或回到你程序设定的某个地方

以上就是关于标题单片机使程序跑飞或进入死循环,如何利用看门狗摆脱困境全部的内容,包括:标题单片机使程序跑飞或进入死循环,如何利用看门狗摆脱困境、什么是跑飞、stm32程序用到中断和定时器,一通电程序就跑飞了,怎么回事等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9715055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存