我在我的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;
}
}
}
答案 0 :(得分:2)
您的循环总是需要5秒以上才能完成,因为您的总延迟时间是5秒加上 function2 的执行时间。如果它没有退出循环,我的赌注是你的 function2 负责。 无论如何,如果你需要计时,你应该使用millis()函数,结果将是这样的:
long startTime = millis();
long delay = 50000;
while(millis() < startTime + delay){
functionw();
}
此实施将更接近您的5秒时限。