-
Data: 2009-10-13 12:37:54
Temat: Dlaczego ATmega128 przekłamuje?
Od: "Darkac" <d...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Piszę program na ATmega128 za pomocą edytora AVRSide i kompilatora WinAVR.
Program jest juz trochę rozbudowany i zawiły. Jest obsługa przerwań
czasowych co mniej więcej 1ms i używane jest sporo zmiennych globalnych.
Program obrabia równolegle dwa sygnały A i B z przetwornika A/C.
Jeśli sygnał A lub B spełni pewien warunek badany w przerwaniu, w pętli
głównej wchodzi w odpowiadającą swojemu kanałowi jedną z dwóch bliźniaczych
procedur (dość zawiłych).
Jedna ze zmiennych ustawiana jest w menu (wyświetlacz LCD i klawiatura
multipleksowana) i przyjmuje wartości 1 lub 0.
Dziwne zjawisko występuje, kiedy program wejdzie w wykonywanie procedury
tylko dla kanału B. W trakcie jej wykonywania powoduje samoistne wyzerowanie
wspomnianej wcześniej zmiennej. Zmienna ta nie występuje w ogóle w tej
procedurze. W całym programie jej wartość może być zmieniana ręcznie tylko w
pewnym menu które trzeba specjalnie wywołać sekwencją działań.
Podejrzewałem że może jest za mało pamięci RAM (zajętość 83%) i coś zaczyna
głupieć. Testowo wywaliłem pewne tabele zajmujące sporo RAM-u i uzyskałem
52% zajętości. Zjawisko się nie zmieniło. Sprawdziłem użycie tablic i
nigdzie nie jest przekroczony ich rozmiar.
Zmienna nie jest używana w przerwaniach, ale dla próby dałem ją jako
volatile - bez poprawy.
Szukanie dokładnie miejsca w procedurze w którym następuje zmiana wartości
tej zmiennej, to żmudna czasochłonna praca. Procedura jest duża i
pokiełbaszona z wieloma rozgałęzieniami typu case. Przydałaby się jakaś
wskazówka do szukania winnego.
Co może powodować ingerencję w wartość zmiennej przez procedurę, w której ta
zmienna nie występuje?
Następne wpisy z tego wątku
- 13.10.09 13:14 DJ
- 13.10.09 13:43 Darkac
- 13.10.09 15:24 entroper
- 13.10.09 15:23 J.F.
- 13.10.09 15:30 cepu69
- 13.10.09 16:48 Jurek Szczesiul
- 13.10.09 20:59 John Smith
- 13.10.09 21:15 T.M.F.
- 13.10.09 21:37 Ghost
- 14.10.09 07:51 John Smith
- 14.10.09 09:47 T.M.F.
- 14.10.09 09:49 T.M.F.
- 14.10.09 10:23 Darkac
- 14.10.09 10:28 DJ
- 14.10.09 10:30 DJ
Najnowsze wątki z tej grupy
- Czy cos fi przechodzi przez trafo separujące?
- śrubka masy
- Ciekawostka na dziś lock bity
- [OT] napisy w YT
- Było 83V
- Stare komputery
- Odbiornik ADS-B i wzmacniacze
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
Najnowsze wątki
- 2025-08-06 Gdynia => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-08-06 Białystok => Inżynier oprogramowania .Net <=
- 2025-08-06 "[...] sejmowe wystąpienie posłanki Klaudii Jachiry, która zakończyła je słowami ,,Sława Ukrainie"."
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Panuje się 181 159,42 zł./mies. na posła w 2026r.
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Czy cos fi przechodzi przez trafo separujące?
- 2025-08-05 kajaki i promile
- 2025-08-05 Re: Tesla jest bezpieczna, wczoraj spaliła się doszczętnie na Ursynowie i nikomu się nic nie stało
- 2025-08-05 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-08-05 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-05 B2B i książka przychodów i rozchodów
- 2025-08-04 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML