-
Data: 2014-11-12 01:35:22
Temat: Różny czas pomimo synchronizacji z NTP
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Eksperymentowałem ostatnio z synchronizacją czasu w układzie z Atmegą i
ENC28J60. Użyłem gotowych funkcji zaimplementowanych w stosie
tuxgraphics.org, z niewielkimi modyfikacjami (głównie przeliczanie
odebranej wartości na Unix epoch.
Generalnie rozwiązanie jest bardzo proste. Programowy licznik odlicza w
dół liczbę sekund pomiędzy kolejnymi synchronizacjami (w tej chwili
3600). Gdy dojdzie do zera wysyłany jest pakiet z requestem.
Jednocześnie w momencie przyjścia pakietu UDP funkcja sprawdza, czy mamy
do czynienia z odpowiedzią - jeśli tak, to do zmiennej volatile int32_t
rtc ładowany jest odebrany czas.
Obliczanie wartości wygląda następująco:
*time = ( ( ((uint32_t)buf[0x52]<<24) | ((uint32_t)buf[0x53]<<16) |
((uint32_t)buf[0x54]<<8) | ((uint32_t)buf[0x55]) ) - 2208988800UL )
Pomiędzy synchronizacjami zegar jest inkrementowany w przerwaniu timera.
Przerwanie jest wywoływane co 1ms - normalnie zwiększana jest zmienna
pomocnicza, jednak w przypadku przekroczenia przez nią wartości 1000
uruchamia się obsługa zegara i kilku programowych liczników.
Program zdaje się działać prawidłowo, jednak byłem ciekaw na ile jest
dokładny. Napisałem prosty skrypt na Raspberry Pi, który odczytuje czas
z omawianego urządzenia i odejmuje go od czasu systemowego w RasPi.
Wyniki są dziwne. Nieraz mam kilka sekund różnicy, czasem jednak pojawia
się wynik w granicach 60 sekund. Niekiedy większą różnicę obserwuję tuż
po synchronizacji.
Nie wydaje mi się, żeby mogło to wynikać z niedokładności timera Atmegi
- niewielki dryf ie objawiłby się tak szybko. No chyba, że jeszcze zegar
w RasPi ma tak tragiczną stabilność.
Gdzie mogę szukać przyczyn takiego zachowania?
Następne wpisy z tego wątku
- 12.11.14 09:12 Marek
- 12.11.14 09:45 Atlantis
- 12.11.14 09:45 Andrzej W.
- 12.11.14 10:36 Marek
- 12.11.14 10:54 Atlantis
- 12.11.14 11:18 Atlantis
- 12.11.14 12:10 Atlantis
- 12.11.14 12:17 J.F.
- 12.11.14 12:36 Andrzej W.
- 12.11.14 12:43 Atlantis
- 12.11.14 12:49 Atlantis
- 12.11.14 12:59 Marek
- 12.11.14 13:49 Atlantis
- 12.11.14 14:01 Andrzej W.
- 12.11.14 14:06 Atlantis
Najnowsze wątki z tej grupy
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
Najnowsze wątki
- 2025-06-16 Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- 2025-06-16 Warszawa => Team Lead Data Engineer (obszar Snowflake) <=
- 2025-06-16 Warszawa => Software Engineer .Net <=
- 2025-06-16 Warszawa => Inżynier oprogramowania .Net <=
- 2025-06-16 Warszawa => IT Data Analyst (Power BI) <=
- 2025-06-16 Warszawa => Spedytor Międzynarodowy <=
- 2025-06-16 Gdynia => MLOps Engineer <=
- 2025-06-16 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-06-16 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-06-16 Warszawa => Dyrektor Sprzedaży (rozwiązania Cloud) <=
- 2025-06-16 Re: Płonie 3000 elektryków u wybrzeży Alaski
- 2025-06-16 Re: Tesla z najnowszym FSD potrafi przejechać dziecko i... pojechać dalej.
- 2025-06-15 Re: Kolejny expierd usiłuje wmówić błąd pilota wadliwego Boeinga
- 2025-06-14 Re: Boeing, który rozbił się w Indiach to był latający złom, bez serwisowania [złom,bo,Air,India,v.,złom,bo,Boening]
- 2025-06-14 Re: Boeing, który rozbił się w Indiach to był latający złom, bez serwisowania [złom,bo,Air,India,v.,złom,bo,Boening]