eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaRóżny czas pomimo synchronizacji z NTPRe: Różny czas pomimo synchronizacji z NTP
  • 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: Re: Różny czas pomimo synchronizacji z NTP
    Date: Wed, 12 Nov 2014 14:06:57 +0100
    Organization: http://www.wit.edu.pl
    Lines: 59
    Message-ID: <m3vm1h$beo$1@portraits.wsisiz.edu.pl>
    References: <m3ua09$pji$1@portraits.wsisiz.edu.pl>
    <54631e12$0$11152$65785112@news.neostrada.pl>
    <m3vc6j$boc$1@portraits.wsisiz.edu.pl>
    <m3vf68$l11$1@portraits.wsisiz.edu.pl>
    <54634628$0$2844$65785112@news.neostrada.pl>
    <m3vhgb$sa6$1@portraits.wsisiz.edu.pl>
    <a...@n...neostrada.pl>
    <m3vl01$7ni$1@portraits.wsisiz.edu.pl>
    NNTP-Posting-Host: aaac161.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 1415797617 11736 83.4.2.161 (12 Nov 2014 13:06:57
    GMT)
    X-Complaints-To: a...@w...edu.pl
    NNTP-Posting-Date: Wed, 12 Nov 2014 13:06:57 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101
    Thunderbird/24.6.0
    In-Reply-To: <m3vl01$7ni$1@portraits.wsisiz.edu.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:673824
    [ ukryj nagłówki ]

    Zauważyłem jeszcze jedną ciekawą rzecz. Jeśli przeprowadzę dłuższą serię
    ręcznych synchronizacji czasu, to różnica się niweluje i wynosi 0-1 sek.
    Ta jedna sekunda może już po prostu wynikać z różnicy w czasie, jaki
    jest potrzebny do wykonania skryptu.

    Teraz wyłączyłem automatyczną synchronizację i zobaczę jak się będzie
    zachowywał czas.

    Procedura wysyłająca request wygląda następujaco:

    void client_ntp_request(uint8_t *buf,uint8_t *ntpip,uint8_t
    srcport,uint8_t *dstmac)
    {
    uint8_t i=0;
    uint16_t ck;
    if (!enc28j60linkup())return;
    //
    while(i<6){
    buf[ETH_DST_MAC +i]=dstmac[i]; // gw mac in local lan or
    host mac
    buf[ETH_SRC_MAC +i]=macaddr[i];
    i++;
    }
    buf[ETH_TYPE_H_P] = ETHTYPE_IP_H_V;
    buf[ETH_TYPE_L_P] = ETHTYPE_IP_L_V;
    fill_buf_p(&buf[IP_P],9,iphdr);
    buf[IP_ID_L_P]=ipid; ipid++;
    buf[IP_TOTLEN_L_P]=0x4c;
    buf[IP_PROTO_P]=IP_PROTO_UDP_V;
    i=0;
    while(i<4){
    buf[IP_DST_P+i]=ntpip[i];
    buf[IP_SRC_P+i]=ipaddr[i];
    i++;
    }
    fill_ip_hdr_checksum(buf);
    buf[UDP_DST_PORT_H_P]=0;
    buf[UDP_DST_PORT_L_P]=0x7b; // ntp=123
    buf[UDP_SRC_PORT_H_P]=10;
    buf[UDP_SRC_PORT_L_P]=srcport; // lower 8 bit of src port
    buf[UDP_LEN_H_P]=0;
    buf[UDP_LEN_L_P]=56; // fixed len
    // zero the checksum
    buf[UDP_CHECKSUM_H_P]=0;
    buf[UDP_CHECKSUM_L_P]=0;
    // copy the data:
    i=0;
    // most fields are zero, here we zero everything and fill later
    while(i<48){
    buf[UDP_DATA_P+i]=0;
    i++;
    }
    fill_buf_p(&buf[UDP_DATA_P],10,ntpreqhdr);
    //
    ck=checksum(&buf[IP_SRC_P], 16 + 48,1);
    buf[UDP_CHECKSUM_H_P]=ck>>8;
    buf[UDP_CHECKSUM_L_P]=ck& 0xff;
    enc28j60PacketSend(90,buf);
    }

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: