eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaksiążka o programowniu AVR w CRe: książka o programowniu AVR w C
  • Data: 2011-01-31 12:25:23
    Temat: Re: książka o programowniu AVR w C
    Od: Piotr Gałka <p...@C...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]


    Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości
    news:ii66p3$56t$1@news.onet.pl...
    >W dniu 31.01.2011 10:11, Piotr Gałka pisze:
    >> "Przecież tak nie można na AVR! Widać, że gość przeniósł się z 51 gdzie
    >> tak było można. Facet użył pól bitowych do przekazywania flag między
    >> programem a przerwaniami. Tego się nie da _dobrze_ zrealizować w
    >> asemblerze AVR bo zmiana bitu wymaga dwu rozkazów i jak między nimi
    >> przyjdzie przerwanie to ustawiona w przerwaniu flaga w tym samym
    >> rejestrze zostanie skasowana pierwszym rozkazem po powrocie z
    >> przerwania."
    > Po pierwsze m.i. od tego jest możliwość zablokowania przerwań aby
    > wykonywać operacje atomowe.
    >
    > Po drugie C (avr-gcc) udostępnia ładne makro po którym od razu widać, że w
    > tym miejscu zachodzi synchronizacja:
    > ATOMIC_BLOCK(ATOMIC_FORCEON)
    > {
    > flags |= 0b00001001;
    > }
    >
    Ani nie czytałem tego kursu, ani nie pisałem nigdy nic pod gcc.
    Przypuszczam, że w tym kursie było coś takiego:
    struct {int a:1;int b:1;...}flags;
    i potem zapisy typu: flags.a=1; które prawdopodobnie nie były w nic
    robiącego z tego operację atomową ujęte.
    O ile widząc flags|=1 można się spodziewać kilku rozkazów, o tyle widząc
    flags.a=1 można mieć większe problemy, aby wpaść na to, że to może wymagać
    otoczenia blokowaniem przerwań.
    Tak z czystej ciekawości:
    Czy takie makro patrzy co jest w jego wnętrzu i albo blokuje przerwania,
    albo nie (jeśli wnętrze z natury jest operacją atomową) ?
    P.G.

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: