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); //当前亮度的维持的时间,单位毫秒
}
}
} 因为下面这条语句没有执行:val=digitalRead(inpin7);你需要把这条代码放到while循环里面。 {:soso_e154:}嗯嗯!我立刻试式~!谢谢~~大神! 成功了!100%解决问题~~!{:soso_e130:}赞一个! 还有一种办法,在while循环语句最后,加上val=0;这样也能跳出来 楼主循环语句不太熟,用while的话,只要判断条件为真,则会一直循环下去,所以你要在循环中添加判断机制,才能逃出死循环 嗯!新手!很多东西不会!指教!
页:
[1]