Termostat różnicowy, sterownik solarny

User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

Zmienna aktualnyCzas się przepełni przez millis i zacznie liczyć od zera. Dowiesz się za ponad miesiąc ;)
User avatar
iborkim
Posts: 86
Joined: Sat Jun 11, 2016 10:59 am

Post

Duch__ wrote: Mon Dec 05, 2022 4:27 pm Zmienna aktualnyCzas się przepełni przez millis i zacznie liczyć od zera. Dowiesz się za ponad miesiąc ;)
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 2024
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

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.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

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.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Duch__ wrote: Tue Dec 06, 2022 3:30 pm 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.
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ć.
Najlepsze suple dla Twojego domu :mrgreen:
mrprezident14
Posts: 44
Joined: Sat Nov 26, 2022 4:27 pm
Location: Żywiec

Post

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.

Return to “Projekty użytkowników”