极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13397|回复: 6

while跳不出,怎么办~~~

[复制链接]
发表于 2015-10-25 14:37:03 | 显示全部楼层 |阅读模式
{: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);                             //当前亮度的维持的时间,单位毫秒  

  }
}
}
回复

使用道具 举报

发表于 2015-10-25 16:27:07 | 显示全部楼层
因为下面这条语句没有执行:
  1. val=digitalRead(inpin7);
复制代码
你需要把这条代码放到while循环里面。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-25 16:34:59 | 显示全部楼层
{:soso_e154:}嗯嗯!我立刻试式~!谢谢~~大神!
回复 支持 反对

使用道具 举报

 楼主| 发表于 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的话,只要判断条件为真,则会一直循环下去,所以你要在循环中添加判断机制,才能逃出死循环
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-24 13:44:23 | 显示全部楼层
嗯!新手!很多东西不会!指教!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 23:40 , Processed in 0.044520 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表