eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaBiblioteka standardowa time.h i mikrokontrolery › Re: Biblioteka standardowa time.h i mikrokontrolery
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!eternal-september.org!feeder.eternal-september.org!reader02.eternal-septe
    mber.org!.POSTED!not-for-mail
    From: Jacek Radzikowski <j...@s...die.die.die.piranet.org>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Biblioteka standardowa time.h i mikrokontrolery
    Date: Thu, 13 Sep 2018 02:37:44 -0400
    Organization: A noiseless patient Spider
    Lines: 45
    Message-ID: <pnd0jo$peo$1@dont-email.me>
    References: <5b98d6f0$0$669$65785112@news.neostrada.pl>
    <5b99f9c7$0$675$65785112@news.neostrada.pl>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Injection-Date: Thu, 13 Sep 2018 06:37:44 -0000 (UTC)
    Injection-Info: reader02.eternal-september.org;
    posting-host="5ee2da78761c0db2351cd04adf1e2880";
    logging-data="26072";
    mail-complaints-to="a...@e...org";
    posting-account="U2FsdGVkX1+4qowpoI5fPr7WbZkG0fI7d4noaUQwWFs="
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
    Thunderbird/52.9.1
    Cancel-Lock: sha1:DkYQnqaOC21nph3HEPYOBII5l0o=
    In-Reply-To: <5b99f9c7$0$675$65785112@news.neostrada.pl>
    Content-Language: pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:736536
    [ ukryj nagłówki ]

    On 09/13/18 01:46, Atlantis wrote:
    [...]
    > Następnie w pętli głównej usunąłem gmtime(), zamiast tego wyświetlając
    > na LCD aktualna wartość zwracaną przez time(). Efekt był dość...
    > Dziwny... Mianowicie liczba złożona z dwóch ostatnich cyfr faktycznie
    > zwiększała swoją wartość o jeden co sekundę. Natomiast trzecia, czwarta
    > i piata cyfra od końca co chwilę zmieniała swoją wartść "tam i z
    > powrotem" - raz było 500 z czymś, potem ponad 600, potem znów 500 z
    > czymś i tak dalej...
    >
    > Postanowiłem więc zrobić eksperyment i stworzyłem zmienną uint32_t _rtc,
    > która była zwiększana o 1 w przerwaniu alarmu RTC. Podpiąłem ją do
    > funkcji _gettimeofday i problem zniknął.
    >
    > Ktoś wie gdzie może leżeć przyczyna takiego zachowania? Co robię nie tak
    > czytając RTC? Przykład u góry.

    To mocno śmierdzi pisaniem po stosie, i problem wcale nie musi być w
    twoim kodzie. Uprość maksymalnie program testowy, nie używaj LCD ani
    innych wodotrysków, tylko pisz na konsolę szeregową. Jeśli w dalszym
    ciągu będą problemy, to błąd najprawdopodobniej siedzi gdzieś w obsłudze
    RTC. Jeśli nie, to dodawaj po kolejne elementy i patrz kiedy zacznie
    wariować. Wtedy możesz zacząć szukać w którym komponencie jest problem.

    Nie bez znaczenia jest też wersja kompilatora. Dwa razy się mocno
    przejechałem na arm-gcc: Po raz pierwszy, kiedy próbowałem skompilować
    bibliotekę do obsługi launchpadowego LCD od TI. Darmowy kompilator
    wszystko pięknie kompilował, przykłady się linkowały i uruchamiały, nie
    działał tylko ekran dotykowy. Udało mi się zawęzić region gdzie powstaje
    błąd do kilku linijek kodu, i tam utknąłem. Nie było tam żadnych
    sztuczek zależnych od wersji kompilatora, nic do czego można by się
    przyczepić. Po skompilowaniu gcc od TI wszystko zadziałało poprawnie.
    Drugi raz wyłożyłem się na klasach z metodami wirtualnymi. Wystarczyło
    dodać słówko "virtual" do deklaracji metody i program szedł w maliny.
    Tym razem śledziłem wykonanie instrukcja po instrukcji, i znalazłem że
    momencie powrotu z metody wskaźnik stosu wskazywał w jakieś losowe
    miejsce w pamięci. I znów, z gcc od TI i ich własnym kompilatorem
    wszystko działało poprawnie. Ale wystarczyła sama zmiana wywoływanego
    kompilatora w projekcie wygenerowanym przez CCS żeby problem powrócił. W
    tym momencie się poddałem, a projekt czeka aż będę miał czas i wenę żeby
    znów się nim zająć.

    Jacek.


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: