Arduino dla początkujących · Struktury sterujące i czas bez blokowania
delay() i delayMicroseconds() — ograniczenia kodu blokującego
Struktury sterujące i czas bez blokowania
Wprowadzenie
Funkcja delay() wstrzymuje program na zadaną liczbę milisekund, a delayMicroseconds() na mikrosekundy. Obie są proste w użyciu, ale kosztowne: podczas ich trwania procesor tkwi w pętli busy-wait i kod w loop() stoi w miejscu. W tej lekcji zobaczysz dokładnie, co robi argument delay() (typ unsigned long w ms), jaki jest wiarygodny zakres i rozdzielczość delayMicroseconds() (dokładność od ~3 µs, wiarygodnie do ~16383 µs), dlaczego opóźnienie blokujące uniemożliwia reakcję na przyciski i szybkie odczyty czujników, oraz co mimo delay() działa dalej (przerwania sprzętowe, licznik millis(), bufor Serial). To przygotowanie do lekcji 6.4 o millis() i pracy bez blokowania. Odnosimy się do Arduino Language Reference.