单片机怎么防止死机跑飞之类的(单片机程序死机跑飞查找原因)
本篇文章给大家谈谈单片机怎么防止死机跑飞之类的,以及单片机程序死机跑飞查找原因对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
单片机跑飞的原因有哪些?硬件的、软件的、以及怎样防止这种事情的发生...
而这所有的功能是通过逻辑单元的0-1电平来实现的,这些逻辑可能被外界的电磁干扰或者内部本身逻辑结构的问题,使得出现了一个不可控的逻辑状态,这是单片机会出现很多预料之外的状态,这是我们就说单片机”跑飞了“。
(1)、硬件部分:供电模块,首先你看一下电机工作以后,对单片机供电相关的电源有多大影响,也就是对比电机不转和转起来这些电源的压降以及纹波,看是否在spec之内;(2)、软件部分。你可以单步调试,看程序跑到哪里跑飞了。
忽略一切硬件因素,例如是电压不稳或者外部干扰等等问题。因为我这程序用keil软件仿真的时候PC指针都会都飞开,所以应该不关硬件的事。
当AT89S51单片机运行出错或程序陷入死循环时,如何摆脱困境?
1、加看门狗电路和喂狗程序。喂狗程序放置得当,可以使飞走的程序复位,从头开始执行。
2、AT89S51已经有内部看门狗了,所以在程序中,要在恰当的位置放喂狗代码,这样当程序跑死后,看门狗就起作用了。也可以外接看门狗芯片,比如SP706,DS1232,X25045,等都可以用。
3、按一下RST(reset),复位。除了P0到P3口复位为0FFH外,其他基本都为00H。 检查下错误的地方好了,或者按STK,单步追踪,发现错误在哪,或者设置断点。
4、当你进入延时程序时,右键延时程序末端,有一个“运行到光标行(Run to cursor line)”,点击后就直接运行到你点的这一行,右下的状态栏里会显示延时的时间。我要讲的就这些了,希望能够帮到你。
5、单片机运行出错,说明程序有错误,必须查出来修改的,不能就这样错下去吧。程序陷入 死循环 ,这是人为的造成的,要避免写出死循环程序。如何来摆脱困境?很简单,查出 程序错误 ,加以修改,改掉死循环程序。
6、单片机运行出错,说明程序有错误,必须查出来修改的,不能就这样错下去吧。程序陷入死循环,这是人为的造成的,要避免写出死循环程序。如何来摆脱困境?很简单,查出程序错误,加以修改,改掉死循环程序。
看门狗是如何防止单片机程序跑飞的
1、当看门狗定时器启动运行后,为防止看门狗定时器的不必要溢出而引起单片机的非正常的复位,应定期地把看门狗定时器清0,以保证看门狗定时器不溢出。
2、如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
3、看门狗是为了防止程序跑飞而设计使用的。看门狗需要单片机定期给一个信号,一般称为喂狗,单片机程序在正常运行时定期给看门狗一个信号,这是由软件设计的。这样在看门狗溢出之前就有一次喂狗,看门狗就不会溢出。
单片机怎么防止死机跑飞之类的的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于单片机程序死机跑飞查找原因、单片机怎么防止死机跑飞之类的的信息别忘了在本站进行查找喔。