eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaESP8266 i RTCESP8266 i RTC
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!goblin1!g
    oblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-
    01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    Date: Thu, 18 Jun 2015 10:27:41 +0200
    From: Atlantis <m...@w...pl>
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101
    Thunderbird/31.7.0
    MIME-Version: 1.0
    Newsgroups: pl.misc.elektronika
    Subject: ESP8266 i RTC
    Content-Type: text/plain; charset=utf-8
    Content-Transfer-Encoding: 8bit
    Lines: 29
    Message-ID: <558280f5$0$27513$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.13.232.147
    X-Trace: 1434616054 unt-rea-a-02.news.neostrada.pl 27513 83.13.232.147:60930
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:682749
    [ ukryj nagłówki ]

    Ktoś z was ma jakiś pomysł na zaimplementowanie w miarę dokładnego
    zegara czasu rzeczywistego na ESP8266? Przez "w miarę dokładny" mam na
    myśli taki, którzy nie "odpływałby" więcej jak kilka sekund na dobę,
    pozwalając by synchronizacja z NTP co kilka godzina załatwiała sprawę.

    W najnowszym SDK mamy gotowe funkcje do pobierania czasu z serwera NTP.
    Problemem jest późniejsza inkrementacja zmiennej, w której trzymamy
    czas. Najprościej byłoby użyć mechanizmu timera programowego
    (os_timer_t), ale on nie gwarantuje wykonania przypisanej funkcji
    dokładnie po upływie zadanego odcinka czasu. Czas będzie więc sobie
    pływał...

    Dokumentacja najnowszego SDK (wersja 1.1.1) opisuje co prawda funkcje
    hw_timer, jednak nie widzę nigdzie odpowiadającego im pliku
    nagłówkowego, ani przykładów. Sam opis jest bardzo oględny i lakoniczny.
    Czyżby do dokumentacji trafiła jeszcze nie zaimplementowana funkcjonalność?

    W końcu mamy też dwie takie funkcje:
    system_get_time() - zwraca ilość us od startu systemu (z grubsza coś jak
    millis() w Arduino)
    system_get_rtc_time() - zwraca ilość taktów zegara RTC
    system_get_rtc_calib() - zwraca długość trwania taktu zegara RTC z
    dokładnością do 0,1us.

    Na podstawie tego można wyliczyć jak długo pracuje zegar. Dałoby się
    jakoś wykorzystać ten mechanizm do dokładnego "taktowania" zmiennej, w
    której trzymam czas w formacie uniksowym, synchronizowany z ntp?

    Na razie wolałbym uniknąć stosowania zewnętrznego układu RTC na I2C.

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: