关于跳出循环

2019-08-14 18:10发布

          主程序的循环,
       while(flag3)
         {
                while(flag1)        //对应按键key0,
                {       
                        TIM_SetCompare1(TIM1,300);
                        LED1=1;
                        delay_ms(500);
                        TIM_SetCompare1(TIM1,0);
                        LED1=0;
                  delay_ms(500);                       
                }       

                while(flag2)        //对应按键key1,
                {
                        delay_ms(10);
                        LED1=1;
                        if(dir)led0pwmval++;
                        else led0pwmval--;
                        if(led0pwmval>300)dir=0;
                        if(led0pwmval==0)dir=1;
                        TIM_SetCompare1(TIM1,led0pwmval);
          }

         }
为什么while(flag3)这个循环一旦进入之后就出不来了!我设定了按键使flag3取反!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
hasaki
1楼-- · 2019-08-15 17:45
本帖最后由 hasaki 于 2017-8-4 08:42 编辑

首先你所谓的取反是按一下取反然后值不变还是只有按的时候取反如果值不变那么1和2是不是也是这样如果也是那么你就需要保证你想跳出外面循环是 里面的循环条件不成立
sodermalm
2楼-- · 2019-08-15 18:09
程序逻辑问题,你应该把功能线理清楚了。不然像你这个肯定死在某个while中了
Sun_Fly
3楼-- · 2019-08-15 19:20
仿真看死哪了
Acuity
4楼-- · 2019-08-16 00:58
 精彩回答 2  元偷偷看……
peanut
5楼-- · 2019-08-16 04:20
Sun_Fly 发表于 2017-8-4 10:39
仿真看死哪了

死在while(flag3)。进去了就出不来了
南方
6楼-- · 2019-08-16 06:25
peanut 发表于 2017-8-7 10:38
死在while(flag3)。进去了就出不来了

进入了while(flag3)后无按键扫描程序。。。进入了死循环  怎会出得来

一周热门 更多>