eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDlaczego ATmega128 przekłamuje?Dlaczego ATmega128 przekłamuje?
  • 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?

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: