-
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.
Następne wpisy z tego wątku
- 13.09.18 09:03 Atlantis
- 13.09.18 09:05 Atlantis
- 13.09.18 09:14 Jacek Radzikowski
- 13.09.18 11:18 Grzegorz Niemirowski
- 14.09.18 09:33 Atlantis
- 14.09.18 11:00 Grzegorz Niemirowski
- 14.09.18 11:09 Marek
Najnowsze wątki z tej grupy
- [newbie] Jaki multimetr za 2-4 stówy?
- szafka sieciowa
- Raspberry Pi 5 + dyski SATA
- lutownica na węgiel
- Znów czary (albo niewiedza) - tym razem fotowoltaika
- Chess
- Vitruvian Man - parts 7-11a
- przeźroczyste koszulki
- Re: Win 10/11 nie lubi OKI
- Programator czasowy TUYA.
- Dlaczego energia elektryczna jest droga i cały czas drożeje
- twardy dysk stuka
- Oclenie alkalicznych akumulatorów
- Powerbank jednonapieciowy, a trzynapieciowy
- Lustra w maszynie ASML
Najnowsze wątki
- 2024-05-11 Warszawa => Administrator IT (Linux) <=
- 2024-05-11 Gdańsk => Inżynier DevOps Conexa First (Kontraktor) <=
- 2024-05-10 nowe programy wolniej rysują okna
- 2024-05-10 Chess
- 2024-05-10 IZERA CD.
- 2024-05-10 Vitruvian Man - parts 7-11a
- 2024-05-10 Gdańsk => AI Specialist <=
- 2024-05-10 Zabrze => Junior HelpDesk <=
- 2024-05-10 Chess
- 2024-05-10 chatGPT prawem się zasłania
- 2024-05-10 Vitruvian Man - parts 1-6
- 2024-05-10 Vitruvian Man - parts 7-11a
- 2024-05-10 Chess
- 2024-05-10 Poznań => Specjalista ds. Sprzedaży <=
- 2024-05-10 Vitruvian Man - parts 7-11a