Мне интересно, есть ли какие-либо причины не выполнять цикл внутри функции loop()
.
Чтобы проиллюстрировать мой вопрос, скажем, я хочу, чтобы светодиод мигал тысячу раз.
Вот два способа сделать это с Arduino.
В следующем примере я не блокирую функцию loop()
:
const int PIN_LED = 2;
const int BLINKING_LIMIT = 1000;
int blinkCount = 0;
void setup() {
// initialize serial:
pinMode(PIN_LED, OUTPUT);
}
// Here, I make sure not to "lock" the loop() function
void loop() {
blinkCount++;
if (blinkCount < BLINKING_LIMIT) {
digitalWrite(PIN_LED, HIGH);
delay(200);
digitalWrite(PIN_LED, LOW);
delay(200);
}
}
Во второмВо-первых, в функции loop()
есть длинный цикл (который может длиться еще дольше). Arduino "заблокирован" внутри цикла for
:
// Here, I make sure not to "lock" the loop() function
void loop() {
for (int i = 0; i < BLINKING_LIMIT; i++) {
digitalWrite(PIN_LED, HIGH);
delay(200);
digitalWrite(PIN_LED, LOW);
delay(200);
}
}
Какова лучшая практика? Должен ли я заботиться о том, чтобы не «заблокировать» функцию loop()
, или мне просто все равно? Будет ли приемлем бесконечный цикл внутри функции loop()
?