-
Data: 2014-11-12 12:36:07
Temat: Re: Różny czas pomimo synchronizacji z NTP
Od: "Andrzej W." <a...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2014-11-12 o 12:10, Atlantis pisze:
> Hmm.... Wygląda na to, że Raspberry Pi pokazuje dokładnie ten sam czas,
> który widać np. na epochconverter.com albo currenttimestamp.com.
> To na układzie z Atmegą pojawia się jakaś dziwna różnica, wynosząca od
> kilku do kilkudziesięciu sekund. Mam wrażenie, że nie narasta ona w
> wyniku dryfu wprowadzanego przez timer - zwykle jest ona widoczna już po
> aktualizacji czasu, którą mogę też inicjować ręcznie.
>
> Kod funkcji analizującej pakiet NTP w tej chwili wygląda następująco:
>
> uint8_t client_ntp_process_answer(uint8_t *buf, volatile uint32_t
> *time,uint8_t dstport_l){
>
> uint32_t tm_temp=0;
>
> if (dstport_l){
> if (buf[UDP_DST_PORT_L_P]!=dstport_l){
> return(0);
> }
> }
> if (buf[UDP_LEN_H_P]!=0 || buf[UDP_LEN_L_P]!=56 ||
> buf[UDP_SRC_PORT_L_P]!=0x7b){
> // not ntp
> return(0);
> }
> // copy time from the transmit time stamp field:
> tm_temp = ( ((uint32_t)buf[0x52]<<24) | ((uint32_t)buf[0x53]<<16) |
> ((uint32_t)buf[0x54]<<8) | ((uint32_t)buf[0x55]) );
> tm_temp -= 2208988800UL;
> cli();
> *time = tm_temp;
> //*time = ( ( ((uint32_t)buf[0x52]<<24) |
> ((uint32_t)buf[0x53]<<16) | ((uint32_t)buf[0x54]<<8) |
> ((uint32_t)buf[0x55]) ) - 2208988800UL ); //0x83AA7E80
> sei();
> return(1);
> }
>
Ten kod to interpretuje każdy pakiet UDP co ma 56 bajtów, tak?
Żeby czytać właściwy pakiet warto sprawdzić czy odpowiedź zawiera
znacznik czasu wysłany przez Ciebie w zapytaniu. (RFC4330 Originate
Timestamp).
Ja u siebie czytam czas z pozycji [40:43], widzę, że Ty czytasz [82:85].
Ten bufor to "czyste" dane z pakietu UDP, czy jest tam też jakiś
nagłówek? Bo czytasz znacznie dalej niż długość pakietu UDP.
--
AWa.
Następne wpisy z tego wątku
- 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
- 12.11.14 14:19 Atlantis
- 12.11.14 15:02 Marek
- 12.11.14 15:45 Atlantis
- 12.11.14 17:21 Jakub Rakus
- 12.11.14 17:43 Atlantis
- 12.11.14 19:50 Jakub Rakus
- 12.11.14 19:53 Marek
- 12.11.14 20:00 Atlantis
- 12.11.14 20:07 Marek
Najnowsze wątki z tej grupy
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
Najnowsze wątki
- 2025-01-26 Trump-2 JUŻ bardzo łaskawy [1_500 ułaskawień skazanych za Bidena za "Kawkę na Kapitolu"]
- 2025-01-26 Brak bolca ochronnego ładowarki oznacza pożar
- 2025-01-24 Elektryfikacja w ODWROCIE
- 2025-01-25 AMS spalony szybkim zasilaczem USB
- 2025-01-24 stalowe bezpieczniki
- 2025-01-23 Zenek Kapelinder - ?
- 2025-01-25 Błonie => Sales Specialist <=
- 2025-01-25 Lublin => iOS Developer (Swift) <=
- 2025-01-24 Warszawa => Java Developer <=
- 2025-01-24 Białystok => iOS Developer (Swift experience) <=
- 2025-01-24 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-24 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-01-24 Lublin => Delphi Programmer <=
- 2025-01-24 Kraków => Key Account Manager <=
- 2025-01-24 Lublin => Programista Delphi <=