-
Postów
5 166 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
12
Osiągnięcia Behlur_Olderys
6,4 tys.
Reputacja
2
Odpowiedzi społeczności
Aktualizacja statusu
Zobacz wszystkie aktualizacje Behlur_Olderys
-
Dobra rada: nie opierać działania montażu o wskazania czasu z Arduino. millis() jest dobre do migania diodą a nie do podążania za gwiazdami Czas kupić dobry RTC.
- Pokaż poprzednie komentarze 1 więcej
-
Nie trzeba RTC. Oprzyj się o lokalne sprzętowe źródło czasu. Ono tam było w nanosekundach albo pikosekundach. Pobierz aktualny czas, wylicz czas następnego kroku, i kolejny rób gdy timer wskazuje godzinę większą. Jeśli reszta procedur i samo robienie kroku będą krótsze od wyliczanego odstępu między krokami, to jitter będzie niewielki, oscylujący wokół wartości idealnej.
Naiwne robienie sleepa kończy się źle, to prawda, bo samo wywołanie delay() już trwa, nie wspominając o zrobieniu kroku i błąd rośnie w nieskończoność
tu jak ja to kiedyś w wersji arduino robiłem: https://github.com/lkosz/eq3-2_drive/blob/master/telescope_motor.ino#L62
-
Ja to wszystko mam przerobione. E krótkich interwałach miałem dokładność w okolicach kilku us.
Problem pojawia się gdy potrzebujesz trackować czas na dłuższym okresie - tak jak np. u mnie okres ślimaka to 662s. Potrzebuję to do enkodera. Niestety potrzebuję często robić przerwania do komunikacji (ASCOM) a przerwania zaburzają te countery do czasu. Tak czy inaczej, RTC jest niezbędny.
-
@Behlur_Olderys Przerwania do Ascom są synchroniczne?
- Pokaż następne komentarze 6 więcej