-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!.POSTED!not-for-mail
From: Atlantis <m...@w...pl>
Newsgroups: pl.misc.elektronika
Subject: Różny czas pomimo synchronizacji z NTP
Date: Wed, 12 Nov 2014 01:35:22 +0100
Organization: http://www.wit.edu.pl
Lines: 32
Message-ID: <m3ua09$pji$1@portraits.wsisiz.edu.pl>
NNTP-Posting-Host: cgk31.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: portraits.wsisiz.edu.pl 1415752521 26226 83.30.238.31 (12 Nov 2014 00:35:21
GMT)
X-Complaints-To: a...@w...edu.pl
NNTP-Posting-Date: Wed, 12 Nov 2014 00:35:21 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101
Thunderbird/24.6.0
Xref: news-archive.icm.edu.pl pl.misc.elektronika:673797
[ ukryj 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
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
Najnowsze wątki
- 2025-02-25 Tak wiem.... To oczywiste ale jak oni dzisiaj dziadują na materiale
- 2025-02-25 rozliczenia policji
- 2025-02-25 Echhhhhh. Marzy mi się SWAP Audi A2 z 1.8 T ;-)
- 2025-02-25 Warszawa => Analityk Biznesowo-Systemowy <=
- 2025-02-25 Warszawa => SQL Developer <=
- 2025-02-25 Zbigniew Ziobro śmie sugerować "niedostatki niezawisłości" sędzi (wątpliwości co do bezstronności)
- 2025-02-25 Kraków => DevOps Engineer (Junior/Regular) <=
- 2025-02-25 Kraków => Front-end Developer <=
- 2025-02-25 Szpital
- 2025-02-24 Gniazdo + wtyk
- 2025-02-24 Dyrektor Toyoty miał rację. Elektryki to ślepa uliczka
- 2025-02-24 Białystok => System Architect (Java background) <=
- 2025-02-24 Białystok => System Architect (background deweloperski w Java) <=
- 2025-02-24 Białystok => Solution Architect (Java background) <=
- 2025-02-24 Warszawa => Data Engineer (Tech Leader) <=