@Fostrzyk: no dobrze jest. Timeout zawsze jest o 1k większy od millis, czyli nigdy nie wejdzie w ifa ustawiającego status na B. Nie wiem co robi millis ale zakładam, że zwraca to samo przy obu wywołaniach.
@Fostrzyk: Jeśli chcesz czekać sekundę w przypadku gdy _status będzie równy A to walnij tam jakiegoś sleepa bo aktualnie zapamietujesz czas i od razu sprawdzasz czy minął. Z tego co widzę to możesz użyć delay(ms)_ tutaj info
@Fostrzyk: Zatem w funkcji disarm() wczytuj stan przycisków dopóki nie minie zadany czas. Coś w stylu: while(millis() < targetTime) { readButtons(); ... } i zwrócisz odpowiedniego boola. Wybacz brak formatowania ale niewygodnie pisze się na komórce.
Skoro Slawosz nigdzie już nie poleci robię predykcję że w ciągu <18 miesięcy będzie rozwód z posłanką atencjuszką - ona chciała być żoną astronauty a nie jakiejś popierdułki
Fragment kodu wygląda następująco:
if (status == A) {Timeout = millis() +1000;
if (millis() > Timeout){
status = B
}
}
Po sekundzie dalej jest w stanie A. Czego nie chwytam?
Zasadniczo gdzieś w środku ma być jeszcze wywołana funkcja od wpisania kodu czterocyfrowego.
idę na kiepa i przemyślę
....timeoutA = millis() + 5000;
....rozbroj();
....if (timeoutA < millis()) {
........statusalarmu =
Wybacz brak formatowania ale niewygodnie pisze się na komórce.
https://forbot.pl/blog/kurs-arduino-ii-wielozadaniowosc-opoznienia-z-millis-id18418
if (statusalarmu == 2) {
rozbroj();
aktualnyczas =