打印

变量会莫名其妙的变动?

[复制链接]
2897|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
清风致影|  楼主 | 2010-7-1 08:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在调试程序的时候,发现有个全局变量A会莫名其妙的变动,程序有2个函数,变量A在函数一时是正确的,但在函数二却变成其他的数字了(我用串口把这个变量A发出来),而函数二是没有调用该变量A的,大家遇到过这种情况吗?

相关帖子

沙发
yczhang| | 2010-7-1 08:57 | 只看该作者
肯定是软件有问题呀

使用特权

评论回复
板凳
清风致影|  楼主 | 2010-7-1 09:02 | 只看该作者
软件仿真是正确的.....。下到单片机就这样,是用stc的单片机

使用特权

评论回复
地板
yczhang| | 2010-7-1 09:07 | 只看该作者
那你检查下硬件,或者看变量有什么变化规律吧

使用特权

评论回复
5
ayb_ice| | 2010-7-1 09:10 | 只看该作者
软件问题

使用特权

评论回复
6
清风致影|  楼主 | 2010-7-1 09:17 | 只看该作者
什么软件问题?请说详细些

使用特权

评论回复
7
流行音乐| | 2010-7-1 09:26 | 只看该作者
换一个IC试试,如果还是一样的问题,则是软件有问题。

使用特权

评论回复
8
DieHeart| | 2010-7-1 09:50 | 只看该作者
用volatile关键词修饰一下这个全局变量试试看

使用特权

评论回复
9
ayb_ice| | 2010-7-1 09:53 | 只看该作者
处理方法:
1: 用volatile关键词修饰一下这个全局变量试试看
2: 仔细检查程序指针操作,是否越界可能
3: 终极方法,步进调试程序,定能找到错误
...

使用特权

评论回复
10
原野之狼| | 2010-7-1 10:37 | 只看该作者
多半是存储区得到了非法的修改
检查指针类的操作以及数组类的操作

使用特权

评论回复
11
程序匠人| | 2010-7-1 10:48 | 只看该作者
BUG不可怕,可怕的是没BUG。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xlsbz + 1
12
清风致影|  楼主 | 2010-7-1 10:54 | 只看该作者
我觉得像原野之狼说的,以前也发现这种情况,原因是数组在一个文件定义大小是30,但在另一个文件引用却定义为40,导致数组变量会变动,但现在这是个无符号char变量,怎么找也找不到原因。

使用特权

评论回复
13
原野之狼| | 2010-7-1 11:18 | 只看该作者
实在看不出来就贴原理图 贴代码

使用特权

评论回复
14
yewuyi| | 2010-7-1 11:21 | 只看该作者
没有乱变的变量,只有乱变的代码。

重点检查指针、中断、临界代码、函数重入等方面的问题。

使用特权

评论回复
15
李冬发| | 2010-7-1 13:10 | 只看该作者
看看局变量与全局变量是不是重名了,要是重名了,经常出现很有意思的现象。

使用特权

评论回复
16
zhuhai2004| | 2010-7-1 16:44 | 只看该作者
内存

使用特权

评论回复
17
chenxu_1| | 2010-7-1 17:07 | 只看该作者
不要那么急躁,还是先仔细推敲下代码

使用特权

评论回复
18
清风致影|  楼主 | 2010-7-1 17:17 | 只看该作者
本帖最后由 清风致影 于 2010-7-1 17:25 编辑

谢谢各位的回答,问题搞清楚了。
不是程序问题,是存储器问题,这个全局变量从存储器读出来的,存储器本来是24c256的,之前找不到直接换上1024的了,没认真看数据手册管脚不对,读出来的数据自然不对。换上256后正常了。非常不好意思。

顺便总结下程序变量出现异常的情况:
1、可能是存储区被了非法的修改;
2、变量重名
3、定义变量和引用的变量不一致,比如在一个文件定义了uchar st[10],在另一个文件里引用却定义了extern uchar st[11].

使用特权

评论回复
19
yewuyi| | 2010-7-1 17:33 | 只看该作者
谢谢各位的回答,问题搞清楚了。
不是程序问题,是存储器问题,这个全局变量从存储器读出来的,存储器本来是24c256的,之前找不到直接换上1024的了,没认真看数据手册管脚不对,读出来的数据自然不对。换上256后正常 ...
清风致影 发表于 2010-7-1 17:17


超级牛人,竟然有说在外部EEPROM中安息全局变量的。。。

使用特权

评论回复
20
李冬发| | 2010-7-1 20:14 | 只看该作者
就是吴晓军也不是这么用合全局变量的吧!

使用特权

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

本版积分规则

个人签名:我在背后默默的看着你 默默的看着你渐去渐远渐无影

161

主题

1163

帖子

2

粉丝