Termostat różnicowy, sterownik solarny
-
- Posts: 1785
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
Zmienna aktualnyCzas się przepełni przez millis i zacznie liczyć od zera. Dowiesz się za ponad miesiąc
-
- Posts: 76
- Joined: Sat Jun 11, 2016 10:59 am
Wszystkie zmienne w działaniu są unsigned long więc wynik np 100-4294967295 = 4294967195 , warunek 4294967195 >= 5000 zostanie spełniony.
A może jednak coś pokręciłem?
Wziąłem udział w Supla Offline Party 2023
-
- Posts: 8357
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Wydaje mi się, że tutaj jest wszystko ok.
Problem z millis jest jak porównuje się dwie wartości pobrane z millis. Tutaj zawsze jest liczona różnica na zmiennych unsigned, więc wygląda ok.
Problem z millis jest jak porównuje się dwie wartości pobrane z millis. Tutaj zawsze jest liczona różnica na zmiennych unsigned, więc wygląda ok.
Widzimy się na Supla Offline Party vol. 2
-
- Posts: 1785
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
Ja bym na wszelki wypadek dał warunek że jak zmienna aktualnyCzas będzie bliska przepełnieniu to niech procesor się zrestartuje niż wejdzie w stan nieustalony. Może w przypadku twojego programu to się nie wydarzy ale warto dmuchać na zimne.
-
- Posts: 8357
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
To nie jest stan nieustalony.
Licznik zwracany przez millis to "unsigned long". Odejmowanie liczb unsigned daje poprawne różnice nawet jeśli licznik się przekręci. Problemem by było, gdyby licznik był nieaktualizowany, wtedy mógłby odpalić warunek ponwnie po przekręceniu, co mogłoby nie być intencją autora.
Natomiast tutaj co 5 s jest ustawiany licznik na nowo, więc to będzie poprawnie działać.
Widzimy się na Supla Offline Party vol. 2
-
- Posts: 44
- Joined: Sat Nov 26, 2022 4:27 pm
- Location: Żywiec
Mi w nim brakuje do szczęścia regulacji, żeby można było regulować różnice i mieć podgląd na ustawienia próbowałem takie coś zrobić ale jestem zalewy do tego. Tak wiem da się to zmienić w kodzie ale kto będzie gonił z laptopem co po chwila.