求解,int类型,太诡异了,这是怎么回事?

[复制链接]
2870|11
 楼主| huangfeng33 发表于 2012-3-16 13:08 | 显示全部楼层 |阅读模式
碰到一个奇怪的现象,定义一个int全局变量,我在定时器中断服务程序里面++,在另外一个函数里面判断他是不是>=3000,但是这个变量在中断服务函数里面就能检测到>=3000,在另外一个函数里面就只能检测到255,这是怎么回事?
有没有人碰到过?
sjnh 发表于 2012-3-16 13:25 | 显示全部楼层
没代码谁都不好判断
一般是与优化有关
注意是不是volatile变量
 楼主| huangfeng33 发表于 2012-3-16 13:35 | 显示全部楼层
在定时器中断服务程序里让他++,然后在中断服务程序里面判断可以判断到>=3000,但是我在另外一个函数里面智能判断到255
香水城 发表于 2012-3-16 17:38 | 显示全部楼层
判断方法有误
火箭球迷 发表于 2012-3-16 18:53 | 显示全部楼层
怎么判断的
baidudz 发表于 2012-3-16 19:03 | 显示全部楼层
应该是检测的方法有问题
 楼主| huangfeng33 发表于 2012-3-16 20:01 | 显示全部楼层
不在中断里++直接在函数中++  ,这样就能判断得到。再试试看:(
王紫豪 发表于 2012-3-16 21:54 | 显示全部楼层
贴代码嘛
 楼主| huangfeng33 发表于 2012-3-17 19:55 | 显示全部楼层
问题应该出在中断函数,上我现在就想这样试试.
 楼主| huangfeng33 发表于 2012-3-26 17:15 | 显示全部楼层
搞定,谢谢各位。谢谢211,结贴了。
LAORUAN 发表于 2012-3-26 17:34 | 显示全部楼层
10# huangfeng33


也把原因说出来大家分享下啊。
:)
xjwbh 发表于 2012-3-26 17:42 | 显示全部楼层
估计两处不是同一个变量,要不然想不出来用什么办法能达到这个效果!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

506

主题

2446

帖子

8

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