eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDCF77Re: DCF77
  • Data: 2018-07-24 09:29:08
    Temat: Re: DCF77
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Chyba znalazłem przyczynę. Wina najwyraźniej leży w kodzie.
    Autor używa zmiennych typu int do przechowywania informacji o czasie,
    zwracanych przez funkcję millis(). Są one używane do mierzenia długości
    impulsu.
    Rozmiar zmiennej tego typu jest zależny od architektury. Na AVR-ach jest
    to zmienna 16bitowa, podczas gdy funkcja millis() zwraca wartość
    32bitową. Najwyraźniej autor testował ten kod na jakiś Arduino Due z
    32bitowym MCU i wszystko działało prawidłowo, bo tam int jest zmienną
    32bitową.

    Przepisałem sobie tę bibliotekę na C, z myślą o PIC32. Zastosowałem
    zmienne niezależne od architektury. Wygląda na to, że teraz działa to
    prawidłowo - przynajmniej część odpowiedzialna za odbieranie bitów. Bo
    wczoraj nie miałem już ochoty czekać do późnej nocy, żeby przetestować
    odbieranie całych ramek. :)

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: