eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProblem lekko OT, ale w WinAVR ;-) › Re: Problem lekko OT, ale w WinAVR ;-)
  • Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.task.gda.pl!news.mm.pl!not-for-
    mail
    From: Zbych <a...@o...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Problem lekko OT, ale w WinAVR ;-)
    Date: Fri, 12 Jun 2009 22:30:19 +0200
    Organization: Multimedia Polska S.A.
    Lines: 24
    Message-ID: <h0udur$2j2d$1@news.mm.pl>
    References: <h0qku7$a6o$1@atlantis.news.neostrada.pl>
    <h0ud45$219$1@atlantis.news.neostrada.pl>
    NNTP-Posting-Host: host-62-141-227-0.tomaszow.mm.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.mm.pl 1244838683 85069 62.141.227.0 (12 Jun 2009 20:31:23 GMT)
    X-Complaints-To: a...@m...pl
    NNTP-Posting-Date: Fri, 12 Jun 2009 20:31:23 +0000 (UTC)
    User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
    In-Reply-To: <h0ud45$219$1@atlantis.news.neostrada.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:565301
    [ ukryj nagłówki ]

    Grzegorz Kurczyk pisze:

    > Nie wiem czemu kompilator wywalił pobieranie zmiennej poza sekcję
    > cli/sei ? To samo jest w najnowszej wersji.

    Tutaj akurat kompilator ma rację - może przestawiać instrukcje do woli
    póki nie wpływa to na wynik obliczeń (ani cli, ani sei nie wpływa na
    obliczenia, atomowość nie jest brana pod uwagę). Żeby kompilator nie
    wywlekał obliczeń poza sekcję krytyczną trzeba zrobić barierę na
    pamięci. Twój program powinien wyglądać tak:

    int GetEncoder(void) {
    asm volatile ("cli":::"memory");
    int e = *pEncoderValue;
    asm volatile ("sei":::"memory");
    return e;
    }

    Lepiej będzie jednak jak użyjesz makr zdefiniowanych w pliku atomic.h

    --
    przeciez moje rozumowanie bylo bez skazy,
    no sam bym wskoczyl do tego wulkanu,
    ale kto by tak pieknie gwizdal...

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: