发新帖我要提问
123
返回列表
打印

单片机莫名其妙复位

[复制链接]
楼主: 不戴帽子
手机看帖
扫描二维码
随时随地手机跟帖
41
chlylove| | 2010-5-27 17:13 | 只看该作者 回帖奖励 |倒序浏览
我的意思是 MAIN()里最好是设置一个主循环,还要在C程序里最好不要去设置SP的置,这不是汇编,这只是PROC结构方面的事,对于程序出现的问题,如果会使用KEIL软件的话,到里面去调试,查看单片机每一个有关方面的RAM里的数据,找出问题所在。

使用特权

评论回复
42
ningling_21| | 2010-5-27 18:41 | 只看该作者
32# gx_huang

事实证明,有时候是要的...

使用特权

评论回复
43
alpha321| | 2010-5-27 21:42 | 只看该作者
16楼"基本程序架构"是不错的, 按这个思路整理一下你的程序, 应该不会有问题.
初学编程, 特别要注意程序结构要清晰, 另外上传时顺便写一点编程思路或功能说明,
各位大侠虽古道热肠, 可也不能花时间在一堆凌乱的代码中埋头梳理啊, 请多理解.
另外, 可以看看STC单片机本身的特性是否有应用上的问题.
题外话有点多, 请楼主原谅.

使用特权

评论回复
44
xlsbz| | 2010-5-27 21:46 | 只看该作者
不加wihel 不行啊

不加就会 继续跑 一直跑到不确定的位置

再跑回来

你看看反汇编就知道了

那个圈圈在这个论坛发了个这方面的帖子 让我佩服的不得了

使用特权

评论回复
45
lovetan| | 2010-5-28 09:59 | 只看该作者
应该是sp的问题.

使用特权

评论回复
46
ddtx| | 2010-5-28 12:50 | 只看该作者
是呀,没有一个死循环,单片机执行完了就要复位,很正常

使用特权

评论回复
47
haidong2732| | 2010-5-28 16:53 | 只看该作者
首先,你的程序要在while(1)中循环执行。其次,你做的应该是小车吧,如果你的程序没问题,多半是驱动电机运转时,引入了干扰信号导致电源不稳定,或干扰信号直接进入单片机内,引起复位,不知道你的硬件电路是否有去干扰措施?最好将单片机供电和电机供电隔离。

使用特权

评论回复
48
miracly| | 2010-5-28 20:48 | 只看该作者
while(1)
{

}
在哪里?
一点一点的屏蔽吧。
还有,上来给sp赋值?C51仿佛不用这样子。

看看是不是有函数递归调用了。

使用特权

评论回复
49
pangjiang| | 2010-6-1 09:02 | 只看该作者
看看是不是看门狗打开了?我用AVR时也碰到过类似奇怪的事情,不过那个好像是硬件原因造成的,当时用的电源芯片电流比较小,后来换了个大的就好了,估计是启动时消耗电流过大,造成电源芯片拉低引起复位

使用特权

评论回复
50
pangjiang| | 2010-6-1 09:03 | 只看该作者
程序也是在执行到延时程序出的问题,如果跳过延时程序就不会有问题,后来把延时程序改短也可以

使用特权

评论回复
51
jsjdhuangwei| | 2010-6-2 10:03 | 只看该作者
我也遇到一个相似的问题,一个函数接受外部信号后才动作,但是调试的时候,老接受不到外部信号,你说程序会咋办...汇编的时候你会看到这个又跳到主循环的开始处。。

使用特权

评论回复
52
pangjiang| | 2010-6-2 20:11 | 只看该作者
有可能是你中断开了,但没有中断入口函数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则