18-05-2018, 14:16
Witam.
Powodem jest programista. Nie napiszesz żadnego istotnego programu mając w palecie zarządzania czasem tylko delay(). Musisz pogrzebać najpierw w temacie millis() i micros(), potem przerwań. Do tego ustal, jak często mają się dziać rzeczy istotne (np. sterowanie silnikiem) i mniej istotne, np. odczyt analoga, wyświetlanie na ekranie. Poznając nowe funkcje będziesz mógł o tym decydować, ile czasu dajesz na poszczególne zadania. Załóżmy, że pusta pętla powinna się wykonać z pełną prędkością zegara, czyli 16mln razy na sekundę. Na prawdę musisz tak często znać położenie potencjometru? Oczywiście to trwa, dlatego już sam tylko ten odczyt spowolni pętlę do 15 tysięcy. A potem dodajesz jeszcze wysyłanie na ekran, w każdej pętli. Zwalniasz ją znowu tysiąc razy? No i mamy już tylko 15. A teraz dodajesz wisienkę - delay w pętli, w us, więc pewnie już bez znaczenia - taki kamyczek na wieko trumny. Przykład znajdziesz w Arduino, blinkwithoutdelay i wiele pod lupką na forum.
Powodem jest programista. Nie napiszesz żadnego istotnego programu mając w palecie zarządzania czasem tylko delay(). Musisz pogrzebać najpierw w temacie millis() i micros(), potem przerwań. Do tego ustal, jak często mają się dziać rzeczy istotne (np. sterowanie silnikiem) i mniej istotne, np. odczyt analoga, wyświetlanie na ekranie. Poznając nowe funkcje będziesz mógł o tym decydować, ile czasu dajesz na poszczególne zadania. Załóżmy, że pusta pętla powinna się wykonać z pełną prędkością zegara, czyli 16mln razy na sekundę. Na prawdę musisz tak często znać położenie potencjometru? Oczywiście to trwa, dlatego już sam tylko ten odczyt spowolni pętlę do 15 tysięcy. A potem dodajesz jeszcze wysyłanie na ekran, w każdej pętli. Zwalniasz ją znowu tysiąc razy? No i mamy już tylko 15. A teraz dodajesz wisienkę - delay w pętli, w us, więc pewnie już bez znaczenia - taki kamyczek na wieko trumny. Przykład znajdziesz w Arduino, blinkwithoutdelay i wiele pod lupką na forum.
Miło być decenianym https://buycoffee.to/kaczakat