arduino代码在循环上运行

时间:2017-03-23 05:40:32

标签: loops arduino switch-statement arduino-uno

我在我的Arduino项目中使用了一个开关盒,而且我在第二种情况下使用了for循环,但该函数没有超出for循环。我想在5秒钟内运行我的第二个案例,然后想要打破它。帮助我。

int cmd;
void loop(){                     // run over and over again
  if(Serial.available()){
    Serial.println("enter 1 or 2");
    cmd=Serial.read();

    switch (cmd){
      case '1':
        function1() ;
        break ;

      case '2':
        int i=0;
        for(i=0;i<100;i++){
          function2();
          delay(50);
        }
        break;    
    }  
  }    
}      

1 个答案:

答案 0 :(得分:2)

您的循环总是需要5秒以上才能完成,因为您的总延迟时间是5秒加上 function2 的执行时间。如果它没有退出循环,我的赌注是你的 function2 负责。 无论如何,如果你需要计时,你应该使用millis()函数,结果将是这样的:

long startTime = millis();
long delay = 50000;

while(millis() < startTime + delay){
    functionw();
}

此实施将更接近您的5秒时限。