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保持多久的時間。 –