打印

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

[复制链接]
2038|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 | 只看该作者
判断方法有误

使用特权

评论回复
5
火箭球迷| | 2012-3-16 18:53 | 只看该作者
怎么判断的

使用特权

评论回复
6
baidudz| | 2012-3-16 19:03 | 只看该作者
应该是检测的方法有问题

使用特权

评论回复
7
huangfeng33|  楼主 | 2012-3-16 20:01 | 只看该作者
不在中断里++直接在函数中++  ,这样就能判断得到。再试试看:(

使用特权

评论回复
8
王紫豪| | 2012-3-16 21:54 | 只看该作者
贴代码嘛

使用特权

评论回复
9
huangfeng33|  楼主 | 2012-3-17 19:55 | 只看该作者
问题应该出在中断函数,上我现在就想这样试试.

使用特权

评论回复
10
huangfeng33|  楼主 | 2012-3-26 17:15 | 只看该作者
搞定,谢谢各位。谢谢211,结贴了。

使用特权

评论回复
11
LAORUAN| | 2012-3-26 17:34 | 只看该作者
10# huangfeng33


也把原因说出来大家分享下啊。
:)

使用特权

评论回复
12
xjwbh| | 2012-3-26 17:42 | 只看该作者
估计两处不是同一个变量,要不然想不出来用什么办法能达到这个效果!

使用特权

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

本版积分规则

506

主题

2446

帖子

8

粉丝