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!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.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 15:45:05 +0100
    Organization: http://www.wit.edu.pl
    Lines: 61
    Message-ID: <m3vrph$t12$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>
    <m3vm1h$beo$1@portraits.wsisiz.edu.pl>
    <m3vmov$dau$1@portraits.wsisiz.edu.pl>
    <a...@n...neostrada.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 1415803505 29730 83.4.2.161 (12 Nov 2014 14:45:05
    GMT)
    X-Complaints-To: a...@w...edu.pl
    NNTP-Posting-Date: Wed, 12 Nov 2014 14:45:05 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101
    Thunderbird/24.6.0
    In-Reply-To: <a...@n...neostrada.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:673829
    [ ukryj nagłówki ]

    W dniu 2014-11-12 15:02, Marek pisze:

    > Bez synch. późni się czy spieszy?

    Spóźnia się. Z każdą chwilą coraz bardziej.


    > Pisałeś, że ten *time liczysz w przerwaniu timera 1ms, który odlicza
    > czas lokalny, uwzględniłeś czas tych obliczeń *time (maltretujesz
    > 8bit mcu obliczeniami na int32, timer powinien być aktywny podczas
    > ich trwania)?

    W tej chwili używam przerwania 10ms.
    Hmm... Uważasz, że operacje na zmiennych mogą zajmować więcej czasu,
    przez co różnica odkłada się z każdą sekundą?
    Czy to (wraz z czasem potrzebnym na obliczenie nowego czasu z pakietu
    NTP) tłumaczyłoby także początkowe, kilkusekundowe opóźnienie,
    pojawiające się zwykle po synchronizacji?

    Funkcja obsługująca przerwanie wygląda następująco:

    ISR(TIMER0_COMPA_vect) {
    ten_millis++;

    if (ten_millis > 100) {
    geiger_pulses[seconds] = TCNT1;
    TCNT1 = 0;
    seconds = (seconds + 1) % 60;

    one_second_tick = 1;

    uptime++;
    if (rtc) rtc++;
    if (ntp_update_timer) ntp_update_timer--;
    if (bmp085_update_timer) bmp085_update_timer--;
    if (dht_update_timer) dht_update_timer--;
    if (graphite_upload_timer) graphite_upload_timer--;

    ten_millis = 0;
    }
    }

    Pierwszy blok poleceń w instrukcji warunkowej to obsługa licznika
    Geigera (właściwe główny czujnik zamontowany w tym urządzeniu) - co
    sekundę ilość impulsów zliczonych przez licznik sprzętowy jest
    zapisywana do tablicy, sam licznik jest czyszczony i liczony jest numer
    kolejnego pola do zapisania.

    Zmienna "one_second_tick" to uint8_t - jej jedyną funkcją jest
    przekazywanie do pętli głównej informacji o przekręceniu się licznika
    sekund.

    Zmiennymi 32bitowymi są jedynie uptime i rtc.
    Zmienne bmp085_update_timer i dht_update_timer mają rozmiar ośmiu bitów
    - odliczają czas pomiędzy kolejnymi odczytami czujników BMP085 oraz DHT11.
    Podobne jest przeznaczenie szesnastobitowych zmiennych ntp_update_timer
    oraz graphite_upload_timer, które odliczają czas do kolejnego wysłania
    requesta do serwera NTP oraz uploadu wyników pomiarów do Graphite'a.

    Jeśli to tu leży przyczyna, to w jaki sposób powinienem wprowadzić
    poprawkę? Jak ustalić czas potrzebny do wykonania tych operacji?

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: