crbgz 发表于 2015-10-25 14:37:03

while跳不出,怎么办~~~

{:soso_e109:} 请高手们帮小弟一把~!


int ledpin3=3;
int ledpin5=5;
int ledpin6=6;
int ledpin9=9;
int ledpin10=10;
int ledpin11=11;

//定义数字11 接口
int inpin7=7;//定义数字7 接口
int val;//定义变量val
void setup()
{
pinMode(ledpin3,OUTPUT);
pinMode(ledpin5,OUTPUT);
pinMode(ledpin6,OUTPUT);
pinMode(ledpin9,OUTPUT);
pinMode(ledpin10,OUTPUT);
pinMode(ledpin11,OUTPUT);
   




pinMode(inpin7,INPUT);
}
void loop()
{
digitalWrite(ledpin3,HIGH);
digitalWrite(ledpin5,HIGH);
digitalWrite(ledpin6,HIGH);
digitalWrite(ledpin9,HIGH);
digitalWrite(ledpin10,HIGH);
digitalWrite(ledpin11,HIGH);



val=digitalRead(inpin7);
if(val==HIGH)
      {
               for (int a=255; a>0;a--)         
             {
             analogWrite(ledpin3,a);
             analogWrite(ledpin5,a);
             analogWrite(ledpin6,a);
             analogWrite(ledpin9,a);
             analogWrite(ledpin10,a);
             analogWrite(ledpin11,a);
         
             delay(7);                           
             }
      

             while(val==HIGH)      //这个位置,按钮放开后,测电压是0V,为什么跳不出来?
            
               {
               digitalWrite(ledpin3,LOW);
               digitalWrite(ledpin5,LOW);
               digitalWrite(ledpin6,LOW);
               digitalWrite(ledpin9,LOW);
               digitalWrite(ledpin10,LOW);
               digitalWrite(ledpin11,LOW);
               delay(5000);
               
                  
               }






            


             }
else
{
      for (int a=0; a<=255;a++)            
{
    analogWrite(3,a);
   analogWrite(5,a);
      analogWrite(6,a);
       analogWrite(9,a);
      analogWrite(10,a);
         analogWrite(11,a);
         
    delay(7);                           //当前亮度的维持的时间,单位毫秒

}
}
}

mep 发表于 2015-10-25 16:27:07

因为下面这条语句没有执行:val=digitalRead(inpin7);你需要把这条代码放到while循环里面。

crbgz 发表于 2015-10-25 16:34:59

{:soso_e154:}嗯嗯!我立刻试式~!谢谢~~大神!

crbgz 发表于 2015-10-25 17:41:52

成功了!100%解决问题~~!{:soso_e130:}赞一个!

血阳 发表于 2015-10-26 12:44:58

还有一种办法,在while循环语句最后,加上val=0;这样也能跳出来

加饭 发表于 2015-10-26 15:42:47

楼主循环语句不太熟,用while的话,只要判断条件为真,则会一直循环下去,所以你要在循环中添加判断机制,才能逃出死循环

crbgz 发表于 2016-2-24 13:44:23

嗯!新手!很多东西不会!指教!
页: [1]
查看完整版本: while跳不出,怎么办~~~