23-06-2020, 00:17
Ta kropka nad i to był oczywisty błąd, a reszta kodu jest po prostu bez sensu. Jak ktoś znajduje błąd to analizowanie zwykle w tym miejscu się kończy. Nauczyłeś się odmierzać czas z millis, a do środka wrzucasz delay. Zanim zrealizują się warunki z millis z tym delay pętla będzie wykonywać się tysiące razy na sekundę (pusta teoretycznie 16mln x, ale sprawdzenie millis też parę us trwa), zmienna od przycisku będzie w tym rytmie zmieniać się od 0 do 32 tysięcy przekręcać i przyjmować losowe wartości, gdyby była long po prostu urośnie i przestanie się zmieniać w tym tempie, potem znowu.
Wybij sobie millisem rytm pracy, np. sprawdzanie przycisku co 100ms, albo zmiana nastawy serwa co 10ms, czy nawet odczyt co 1ms stanu przycisku i analizuj czy jest wciśnięty przez co najmniej 30ms, po czym puszczony przez co najmniej 30ms, zalicz wciśnięcie i zmień zmienną dokładnie o tyle ile chcesz (drgania styków).
No chyba że to jakaś maszyna losująca.
Człowiek raczej nie wciśnie przycisku częściej niż z 10Hz, uC działa na 16mln Hz, 16MHz, zmiana ruchu serwa też ma sens w określonej częstotliwości. Musisz sobie to spokojnie poukładać, poczytać kod z jakiś przykładów, kursu, gotowych projektów.
Nikomu tu nie zależy na złośliwości, naprawdę warto przeczytać jaką darmową książkę w PDF lub przejść kurs online, niby nie potrzebujesz IRda czy komunikacji UART, ale są w takie "niepotrzebne" lekcje wplecione różne elementy programowania, bez których odbijasz się od ściany.
Wybij sobie millisem rytm pracy, np. sprawdzanie przycisku co 100ms, albo zmiana nastawy serwa co 10ms, czy nawet odczyt co 1ms stanu przycisku i analizuj czy jest wciśnięty przez co najmniej 30ms, po czym puszczony przez co najmniej 30ms, zalicz wciśnięcie i zmień zmienną dokładnie o tyle ile chcesz (drgania styków).
No chyba że to jakaś maszyna losująca.
Człowiek raczej nie wciśnie przycisku częściej niż z 10Hz, uC działa na 16mln Hz, 16MHz, zmiana ruchu serwa też ma sens w określonej częstotliwości. Musisz sobie to spokojnie poukładać, poczytać kod z jakiś przykładów, kursu, gotowych projektów.
Nikomu tu nie zależy na złośliwości, naprawdę warto przeczytać jaką darmową książkę w PDF lub przejść kurs online, niby nie potrzebujesz IRda czy komunikacji UART, ale są w takie "niepotrzebne" lekcje wplecione różne elementy programowania, bez których odbijasz się od ściany.
Miło być decenianym https://buycoffee.to/kaczakat