-
Postów
5 147 -
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 7 więcej
-
Dodaj zewnętrzny kwarc lub wymień istniejący na dokładniejszy, a jeśli problemem są inne przerwania, to napisz lepiej kod Jeśli brakuje Ci kontroli nad milis, to zrób własne przerwanie od jakiegoś timera.
Jeśli przerwanie od komunikacji odbiera / wysyła u Ciebie cały pakiet, to zmień to tak, żeby odbierać po jednym bajcie - uart jest strasznie wolny dla procka i usunięcie czekania pomiędzy bajtami odzyskuje większość czasu procesora.
-
zamiast delayow użyj timera sprzętowego. Jemu żadne przerwania nie przeszkodzą w dokładnym odliczaniu czasu. Zewnętrzny układ zegara będzie miał taką samą dokładność. Jeśli chcesz większej to musisz ten zewnętrzny RTC skalibrować i zestroić ale to samo możesz zrobić z timerem lub rezonatorem w procku ... i to całkowicie programowo
ja delayów nie używam bo procesor ma robić coś konkretnego zamiast całą moc obliczeniową marnować na odliczanie czasu, a w razie wystąpienia przerwania to odliczanie i tak staje się niedokładne