eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDlaczego ATmega128 przekłamuje?Re: Dlaczego ATmega128 przekłamuje?
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: Konop <k...@g...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Dlaczego ATmega128 przekłamuje?
    Date: Wed, 14 Oct 2009 15:21:46 +0200
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 34
    Message-ID: <hb4j99$hoj$1@inews.gazeta.pl>
    References: <hb1sbu$qoq$1@news.lublin.pl>
    NNTP-Posting-Host: apc206.internetdsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1255526505 18195 83.17.136.206 (14 Oct 2009 13:21:45 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Wed, 14 Oct 2009 13:21:45 +0000 (UTC)
    X-User: konoppo
    X-Antivirus: avast! (VPS 091013-0, 2009-10-13), Outbound message
    In-Reply-To: <hb1sbu$qoq$1@news.lublin.pl>
    X-Antivirus-Status: Clean
    User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:573336
    [ ukryj nagłówki ]

    Darkac pisze:
    > 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.

    Bliźniacze procedury - tzn. ta sama procedura wywoływana z różnymi
    parametrami, czy jednak dwie różne funkcje? Może nie są do końca
    bliźniacze?? :)...

    > 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ń.

    ZAWSZE zeruje?? Nie używasz gdzieś tablic, wskaźników?? Wystarczy drobna
    pomyłka, przekazanie jako wskaźnika nie adresu zmiennej tylko jej
    wartości i już... zapis masz nie tam, gdzie trzeba... przy
    niesprzyjających okolicznościach możesz zawsze zerować pewną pechową
    zmienną...

    Proponuję to, co już ktoś napisał - zostawić tą zmienną w starym
    miejscu, dodać nową i używać nową ;)... jak problem zniknie, to łapać
    moment zapisu do starej zmiennej ;)...

    Pozdrawiam
    Konop

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: