Odpowiedz 
 
Ocena wątku:
  • 6 Głosów - 4 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO
SQ9MDD Offline
Rysiek
****

Liczba postów: 380
Dołączył: 01-02-2009
Post: #118
RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO
Brawo Norbert!

Dokładnie z tym będzie problem. W zasadzie to z tym i jeszcze z jedną rzeczą, już tłumaczę.

Otóż millis() używa licznika 32bit bez znaku, czyli unsigned long, ma zakres od 0 do 4,294,967,295 (czas w milisekundach, to jest około 48dni z małym hakiem). Jednakże w całym programie błędnie przypisałem do liczenia zmiennej czasu, zwykłego longa a ten to też liczba 32bit, ale w zakresie od -2,147,483,648 do 2,147,483,647.
Czyli skróciłem swój licznik w którym mogę przechowywać kolejny moment odpalenia funkcji s-metr o połowę.
A zatem po około 24 dniach kolejne odsunięcie wykonania funkcji s-metra trafi w obszar którego mój licznik nie może przyjąć.

Reasumując jeśli przez 24dni nie wyłaczymy tego transceivera s-metr przestanie działać.

Należy zatem zadbać o obsługę przekroczenia licznika milis() i dodatkowo użyć właściwej zmiennej do liczenia czasu.

...przede wszystkim nie zakłócać...
29-10-2014 15:44
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SQ9MDD - 29-10-2014 15:44

Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości