Termostat różnicowy, sterownik solarny

Awatar użytkownika
Duch__
Posty: 1779
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: Opole

Zmienna aktualnyCzas się przepełni przez millis i zacznie liczyć od zera. Dowiesz się za ponad miesiąc ;)
Obrazek
Awatar użytkownika
iborkim
Posty: 76
Rejestracja: sob cze 11, 2016 10:59 am

Duch__ pisze: pn gru 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 2023
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: 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.
Widzimy się na Supla Offline Party vol. 2 :!:
Awatar użytkownika
Duch__
Posty: 1779
Rejestracja: śr sie 24, 2016 7:26 pm
Lokalizacja: 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.
Obrazek
Awatar użytkownika
klew
Posty: 8184
Rejestracja: czw cze 27, 2019 12:16 pm
Lokalizacja: Wrocław

Duch__ pisze: wt gru 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ć.
Widzimy się na Supla Offline Party vol. 2 :!:
mrprezident14
Posty: 44
Rejestracja: sob lis 26, 2022 4:27 pm
Lokalizacja: Ż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.
ODPOWIEDZ

Wróć do „Projekty użytkowników”