09-12-2018, 16:25
Jak to jest coś bardzo nowego to poćwicz na ledach. Ten kod to tylko przykładowa funkcja z "własną pamięcią". Chodzi o to, że jest uruchamiana milion razy/s (choć tylko po wciśnięciu przycisku/aktywacji alarmu w inny sposób, a po zakończeniu znowu znika z loop) i tylko sprawdza czy ma zmienić stan pinu czy jeszcze nie. Żeby zamigać kilka razy led/buzerem po prostu nie trzeba blokować procesora na 10s poleceniami "zapal, czekaj, zgaś, czekaj, zapal...". I ten przykład wcale nie jest najlepszy, może najprostszy w Arduino do zrozumienia. Swoje urządzenie ustawiasz tak jak powinno być ustawione, po prostu chodzi o to, że gadasz do niego i każesz mu coś zrobić w określonych interwałach czasu. W ten sam sposób można czekać na odpowiedź (jeśli akurat to będziesz używać w programie). Jak chcesz by program był reponsywny, a nie dostawał dziwnej czkawki i zwieszek to tak można podejść do tematu. Jak będzie takich funkcji więcej w programie to lepiej mieć jednego operatora (funkcję) bębna, który będzie wybijać rytm ms, s, minut, za to zapisywanych w prostszych 8 bitowych liczbach, wtedy funkcje też będą mogły korzystać z liczb 8 bitowych zamiast za każdym razem każda sprawdzać i porównywać 32 bitowe z millis(), co jest bardzo długie w procesorach 8 bitowych ( bo jak coś ma się wydarzyć co 2 minuty to nie sprawdzasz czy upłynęło 120000ms tylko czy zmienna minut jest >=2) i zje więcej RAM.
Miło być decenianym https://buycoffee.to/kaczakat