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가 켜져있을 시간을 설정하는 데 사용됩니다. –