打印

大家有没有遇到过全局位变量(bit)被篡改的情况???

[复制链接]
2074|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mcuatcn|  楼主 | 2007-7-29 18:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁动了我的全局BIT(位)变量????
大家有没有遇到过全局位变量(bit)被篡改的情况???

我在我的代码中定义的全局位变量发现在某些情况下会被修改,但是我仔细分析过我的代码,我没有主动修改过它,可是不知道为什么有时会被改变??

我在猜测会不会是这种情况:是不是我的DATA空间不足?当有大量事件触发时函数多次入栈导致占用大量的DATA空间,而我的全局位变量就被牺牲掉了???可是我觉得不因该,既然是全局变量,编译器不会释放它占用的空间的啊!有点晕呼,呵呵,希望有高手指点一二,不胜感激!

环境说明:
51类单片机,256B DATA
我已经使用了181.1(好像有点多)
全局BIT(位)变量修改之后全部变为1

相关帖子

沙发
lbx_00| | 2007-7-29 20:06 | 只看该作者

181已经超出了128,有寻址方式的问题

直接寻址找到的是特殊寄存器,间接寻址找到的是RAM

使用特权

评论回复
板凳
mcuatcn|  楼主 | 2007-7-29 20:15 | 只看该作者

哦,我忘了说了,这个单片机是52类单片机,idata范围是256B

使用特权

评论回复
地板
ayb_ice| | 2007-7-30 07:39 | 只看该作者

位变量也是字节变量的一部分...

肯定是被指针或字节方式改变了...

使用特权

评论回复
5
古道热肠| | 2007-7-30 10:17 | 只看该作者

楼上说得对,查找指针趆界

  检查数组的使用是否出界,可以打乱全局变量定义的顺序,或许会出现异常现象的,这时查起来就好查了。

使用特权

评论回复
6
qingqiu647| | 2007-7-30 15:55 | 只看该作者

试试部分全局变量定义用idata方式

使用特权

评论回复
7
AIRWILL| | 2007-7-30 18:00 | 只看该作者

答非所问

除了"野指针"会干这样的事情, 不会出现这样的问题. 好好检查你的程序吧

使用特权

评论回复
8
mcuatcn|  楼主 | 2007-7-31 17:36 | 只看该作者

谢谢大家

那我明白了,估计是被指针的尾巴扫掉了。。。
我知道问题在哪了
非常感激阿。。

使用特权

评论回复
9
wayner| | 2007-8-1 06:53 | 只看该作者

解决了问题,把经验与大家分享也是很好的

使用特权

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

本版积分规则

4

主题

22

帖子

0

粉丝