• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Millis() i sekwencja - jak to wykonać?
#7
No i brawo.
Ustaw sobie wszystkie zmienne do liczników na typ uint32_t, nic Ci się nie przepełni, wynik odejmowania możesz rzutować na uint32_t " if ((uint32_t) (mil - mil1)>=4000UL)" - tak z UL to oznacza, że ma traktować liczbę 4000 jako Unsigned Long. Jak operujesz na liczba UL to nie otrzymujesz liczb ujemnych, nic się nie przepełnia. To znaczy przepełnia się, ale to nie psuje arytmetyki i te warunki dalej działają.
Jak masz wiele czynności wykonywanych w rozdzielczości 1s, to wystarczy licznik 1s 'sekundy' i flaga nowej sekundy 'fsekundy' - możesz to uprościć. Zobacz sobie te posty, gdzie wklejam przykłady z funkcją czas(); użyj dzielenia % modulo ==1, możesz ustawiać sobie takie warunki, że jak jest czwarta sekunda, trzecia sekunda, itp, albo co 3 sekundy, co 4 sekundy, itp.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Millis() i sekwencja - jak to wykonać? - przez kaczakat - 11-12-2024, 22:35

Skocz do:


Przeglądający: 1 gości