-
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
- Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- Odkurzacz Smapp Dynamic - dawny Zelmer
- Nagra IV i zewnętrzny pilot
- Fejk muzyczny czy nie fejk
- Raspberry Pi 3 Model B+
- Kuchenka elektryczna
- test
- Cewka elektrozaworu
- zapytanie o chip r5f21275nfp
- nie naprawiam więcej telewizorów
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
Najnowsze wątki
- 2025-03-21 Zakaz wjazdu
- 2025-03-21 Nie zawsze wchodzi jedynka
- 2025-03-21 Samochody na wodę
- 2025-03-20 miszczowie parkowania
- 2025-03-20 "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- 2025-03-21 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-03-21 Warszawa => Strategic Account Manager <=
- 2025-03-21 Wrocław => SOC Tech Leader <=
- 2025-03-21 Szczecin => Key Account Manager IT <=
- 2025-03-21 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-03-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-21 Warszawa => IT Business Analyst <=
- 2025-03-21 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-03-21 Dęblin => Node.js / Fullstack Developer <=
- 2025-03-21 Re: Co po KK-200? (Przypadki szczególne ponad 15 lat) [Islandzka matka/ministra ustąpiła]