0
是否可以重写延迟以结束循环? 我想要发生的是按下按钮来结束循环。但似乎在执行next()
方法之前完成循环。覆盖延迟和循环
void blink1() {
loop_flag = true;
while (loop_flag) {
// Loop for Lights
for (int x = 0; x < LED_IN; x++) {
btn_press = digitalRead(btn_1);
if (!btn_press) {
digitalWrite(LED_BUILTIN, HIGH);
next(); //loop_flag = false; is stored
} else {
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(led[x], HIGH);
delay(1000);
digitalWrite(led[x], LOW);
}
}
}
}
void next() {
Serial.write("pressed next \n");
flag = getFlag(flag); // Sets new Flag
loop_flag = false; //ends the loop flag
delay(100); //delay for button friendly
}
也许在'for'循环中添加一个'loop_flag'作为'false'的检查吗?像例如'x
为什么你不去除延迟呢?看起来完全是多余的。循环将结束,函数将在'loop_flag'设置后返回。 – Damon
然后它不会眨眼。延迟用于设置LED保持多久的时间。 –