程序未知复位!

[复制链接]
3055|12
 楼主| mei326 发表于 2010-6-22 09:42 | 显示全部楼层 |阅读模式
当程序正在运行时,有哪几种情况会让单片机复位(STC):1、复位引脚出现低电平
2、看门狗
3、系统软件复位指令
4...谁帮我想想还有哪几种情况可以让单片机复位
现在我是遇到了这样的一个问题,程序运行一段时间后就复位了!由于我要做掉电保护,就在电源加了两个大的电解电容,我想这样就算电源有波动也不会有影响。关掉看门狗和软件复位指令,问题依旧!由于我用了5个中断,不知道中断冲突是否会引起单片机复位!想来几天实在想不出原因,请教各位...诚谢!!!
jack.king 发表于 2010-6-22 10:29 | 显示全部楼层
看运行的环境,是否有外狗!
用示波器看看是否有规律的复位
 楼主| mei326 发表于 2010-6-22 12:16 | 显示全部楼层
无外狗!手头也没示波器!麻烦
yczhang 发表于 2010-6-22 14:02 | 显示全部楼层
写个最简单的几行程序,再运行,看是否复位,如果还是复位就是硬件的问题,如果不复位了,就是软件的问题.

或者,在程序初始化时写一条发送串口数据的程序,然后用串口调试助手收数据.看它在一段时间里会收到多少数据,这样就容易判断了吧
 楼主| mei326 发表于 2010-6-22 17:08 | 显示全部楼层
我用第一种方法试论,没复位了!用串口是个好办法!没想到用串口!等下试试机.谢谢
chunyang 发表于 2010-6-22 19:08 | 显示全部楼层
复位的原因有:
1、RST引脚的高电平;2、看门狗;3、软件指令复位;4、片内电源监控复位;5、IAP复位。
首先,楼主要留意电源电压,如果电源电压本身就在片内电源监控门限附近,那再并多大电容都没用。其次,楼主遇到的也许并非复位而是编程或涉及复位资源的设置错误,这方面也要重点检查。

评分

参与人数 1威望 +1 收起 理由
mei326 + 1

查看全部评分

lirunze 发表于 2010-6-22 19:08 | 显示全部楼层
问题解决了就好啊
 楼主| mei326 发表于 2010-6-22 21:55 | 显示全部楼层
感谢各位的关注!尤其感谢春阳,说出了问题的根本,不过问题现在还没解决,程序运行一段时间后依旧复位!明天我再一个个的排查,希望好运!!!:)
MakeBetter 发表于 2010-6-22 22:18 | 显示全部楼层
程序跑飞也是有可能的,跟踪过没有?堆栈溢出没有?程序无故出错,我通常先看堆栈。
MakeBetter 发表于 2010-6-22 22:19 | 显示全部楼层
再不行,一段一段屏蔽,看在哪里不行的。
jiabin1024 发表于 2010-6-23 09:04 | 显示全部楼层
关掉中断试试看
 楼主| mei326 发表于 2010-6-23 09:35 | 显示全部楼层
问题终于解决了!不是程序是问题(害我白调了两天半),也不是电源本身的问题!而是又继电器的电磁干扰引起的。因为三个继电器居然没加反向二极管,这样由于两个继电器频繁动作引起单片机的复位!受教了...
 楼主| mei326 发表于 2010-6-23 09:36 | 显示全部楼层
最后由衷的感谢各位的帮助!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:与其等待机会,不如主动出击...

117

主题

763

帖子

2

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