打印
[51单片机]

单片机自动复位

[复制链接]
3534|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
puppet21|  楼主 | 2013-9-24 15:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了一段一个单片机发报控制多个单片机的代码,基本功能都实现了,但有一个很奇怪的情况出现:

程序运行到一个特定的时候,P0,P2 口I/O响应后,被控制的单片机系统会出现自动复位的情况,一切数据归初始状态,计时器、变量等等全部回0,请问是不是我的部分代码触发了一些系统地址让它复位了?

简单的测试过后怀疑是这么一段代码出现问题,第一次执行完这段没问题,第二第三次就会出问题。
                 if(controlindex == 1)
                 {
                         i = 0 ;
                         controlindex = 0 ;
                        while((newnode[i] & 0xff)!= 0xff)
                        {
                                if((nownode & 0xff)== (newnode[i]& 0xff)){P0 = nownode;}
                                i++;
                        }
                       
                 }

求大神解答~!!~!感激不尽!

相关帖子

沙发
ayb_ice| | 2013-9-24 15:25 | 只看该作者
代码能有什么问题,否则不可能编译通过

谁知道你的需求是什么

使用特权

评论回复
板凳
单片机学习123| | 2013-9-24 15:47 | 只看该作者
详细点

使用特权

评论回复
地板
w522930954| | 2013-9-24 16:26 | 只看该作者
while条件进去后出不来导致看门狗复位?或者指针溢出导致复位?先关狗吧

使用特权

评论回复
5
dirtwillfly| | 2013-9-24 17:40 | 只看该作者
可能是你没关看门狗

使用特权

评论回复
6
游浪星| | 2013-9-24 18:58 | 只看该作者
w522930954 发表于 2013-9-24 16:26
while条件进去后出不来导致看门狗复位?或者指针溢出导致复位?先关狗吧

指针溢出??什么意思

使用特权

评论回复
7
21ID| | 2013-9-24 21:22 | 只看该作者
第二次和第三次出现复位,应该不是看门狗引起的

使用特权

评论回复
8
puppet21|  楼主 | 2013-9-25 10:14 | 只看该作者
w522930954 发表于 2013-9-24 16:26
while条件进去后出不来导致看门狗复位?或者指针溢出导致复位?先关狗吧

经过一晚上的测试,终于调好了,不是狗的问题,程序很小,不用狗,确实是指针溢出的。控制系统不停发报,子系统不停接收,因为我没有判断停止接收的状态。当超过单片机的内存的时候,系统就自动复位了。原因是知道,不过原理不是很清楚。

使用特权

评论回复
9
w522930954| | 2013-9-25 10:26 | 只看该作者
puppet21 发表于 2013-9-25 10:14
经过一晚上的测试,终于调好了,不是狗的问题,程序很小,不用狗,确实是指针溢出的。控制系统不停发报, ...

找到发生越界的指针,对其指向的内存进行排查,关键看内存部分的界限。有一些++,或者--多加1或多减咦会直接导致指针越界

使用特权

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

本版积分规则

16

主题

140

帖子

0

粉丝