-
Data: 2018-09-13 08:37:44
Temat: Re: Biblioteka standardowa time.h i mikrokontrolery
Od: Jacek Radzikowski <j...@s...die.die.die.piranet.org> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Jak sie smazy elektronike z odleglosci kilkuset metrów?
- William Shockley, co-inventor of the transistor
- Gazowy kocioł CO regulacja cyklingu i regulacja pogodowa
- Zamek elektroniczny
- szablon do pasty DIY
- Głośnik potrzebny
- Silikonowy przewód ekranowany
- Wtyk bananowy ekranowany
- Co może być gorsze od pożaru elektryka?
- daltonizm
- Mały Linux
- Superkondensator. Czy to się uda?
- Stare filmy o technice
- Zasilanie własnych konstrukcji przez PoE
- Jak działa domofon?
Najnowsze wątki
- 2025-11-07 Warszawa => Starszy Programista C <=
- 2025-11-07 Warszawa => Senior Programmer C <=
- 2025-11-07 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-11-07 Warszawa => Programista C <=
- 2025-11-07 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=
- 2025-11-07 Wrocław => Programista React ze znajomością C++ <=
- 2025-11-07 Lublin => Programista Delphi <=
- 2025-11-07 OBD2 napięcie akumulatora
- 2025-11-06 citek i GP.
- 2025-11-06 envelo - list polecony
- 2025-11-06 Ostrów Wielkopolski => Specjalista ds. Marketingu Online (PPC) <=
- 2025-11-06 Warszawa => Strategic Account Manager <=
- 2025-11-06 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-11-06 Ktoś się wybiera?
- 2025-11-05 Warszawa => C Programmer <=




Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei