执行结果是什么

[复制链接]
2091|13
 楼主| llljh 发表于 2012-4-20 19:42 | 显示全部楼层 |阅读模式
if(G_Key_Flag==4)     
           if(!G_Key2)
             delay_ms(100);
              if(!G_Key2)
                 G_Counter3++;
                    if(G_Counter3==100)
                    {
                       G_Counter3=1;
                      }
1.  G_Key_Flag是一个状态量;
2.G_Key2是一个按键量;
3.G_Counter3是一个变量;
这一段的执行结果是什么
 楼主| llljh 发表于 2012-4-20 19:43 | 显示全部楼层
还有就是为什么按键按下结果加的不是1?
houcs 发表于 2012-4-20 19:47 | 显示全部楼层
真正要完成的目的是啥啊
 楼主| llljh 发表于 2012-4-20 19:48 | 显示全部楼层
按一下G_Key2加1,一直按着G_Key2就连续加1.
chenjunt 发表于 2012-4-20 19:50 | 显示全部楼层
想法没错,建议打断点跟踪一下,程序流程是不是按照你的设计在跑。
 楼主| llljh 发表于 2012-4-20 19:50 | 显示全部楼层
就这里不是   其他的地方都是
chenjunt 发表于 2012-4-20 19:52 | 显示全部楼层
那你的断点看到哪些程序没执行呢?控制程序跳转流程的条件又成立不成立呢?
小小猫咪 发表于 2012-4-20 19:52 | 显示全部楼层
2 因为按键按下后,变量一直做加法(哪怕按下的时间很短),所以加的不是1。
zyf部长 发表于 2012-4-20 19:53 | 显示全部楼层
好像忘了清0了
if(flag_1s==1)
{
         G_Counter3++;    //1s做一次加1。
         flag_1s=0;
}
司徒老鹰 发表于 2012-4-20 19:54 | 显示全部楼层
我觉得他出现连续加的问题是最后没有检测按键抬起  应该检测一下 就不会连加了
yinxiangh 发表于 2012-4-20 19:57 | 显示全部楼层
这段程序的功能是:
如果G_Key_Flag=4,就判断按键是否按下
如果按键按下,则变量G_Counter3自加一(一直按住,则连续加,不过要看G_Key_Flag的条件是否满足)
yinxiangh 发表于 2012-4-20 19:58 | 显示全部楼层
如果G_Counter3=100,G_Counter3归1
 楼主| llljh 发表于 2012-4-20 19:59 | 显示全部楼层
嗯,知道了,多谢
 楼主| llljh 发表于 2012-4-20 20:06 | 显示全部楼层
结贴了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

11301

帖子

6

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