książka o programowniu AVR w C - Page 5

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
Re: książka o programowniu AVR w C


Quoted text here. Click to load it

Mnie wkurza to, że mój Samsung Monte potrzebuje ze 2s aby pokazać mi
odebranego SMS-a (Nokia (coś tam 51) robiła to natychmiast).  Za pierwszym
razem zdążyłem pomyśleć "znów się cholera zaciął", bo to jest jeden z
wbudowanych w oprogramowanie "fjuczerów". Denerwujące (lub rozśmieszające -
zależnie od aktualnej sytuacji) jest używanie tego telefonu na nartach. Aby
wybrać dany przycisk z ekranu trzeba nacisnąć poprzedni z lewej. Po kilku
nieudanych próbach rozszyfrowałem tę genialną myśl autora urządzenia i jakoś
sobie poradziłem (na szczęście przycisku najbardziej z lewej nie
potrzebowałem, nie sprawdziłem, czy te najbardziej z lewej nie przeniosły
się na prawo, ale nie sądzę).
P.G.


Re: książka o programowniu AVR w C
W dniu 31.01.2011 10:11, Piotr Gałka pisze:
Quoted text here. Click to load it
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;
}


--
Pozdrawiam
Michoo

Re: książka o programowniu AVR w C

Quoted text here. Click to load it
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.


Re: książka o programowniu AVR w C
W dniu 2011-01-31 13:25 Piotr Gałka napisał(a):

Quoted text here. Click to load it
[...]
Quoted text here. Click to load it

Nie, nie "patrzy". Blokuje przerwania na początku a na końcu odblokowuje
(w tej postaci ATOMIC_FORCEON). Jest też bardziej pożyteczna wersja,
która przywraca stan przerwań sprzed zablokowania - można takie kawałki
bez stresu używać wtedy w przerwaniach.

--
Adam Dybkowski
               http://dybkowski.net /

We've slightly trimmed the long signature. Click to see the full one.
Re: książka o programowniu AVR w C

Quoted text here. Click to load it
Wiem, że nic nie wiem, no i tego nie rozumiem.
Przecież jeśli zablokuje przerwania to stan się w czasie gdy są zablokowane
nie zmieni więc co tu przywracać.
Czego nie chwytam ?
P.G.


Re: książka o programowniu AVR w C
W dniu 2011-02-02 09:24, Piotr Gałka pisze:
Quoted text here. Click to load it

Wychodzisz z błędnego założenia, że ten fragment kodu zaczyna się zawsze
przy włączonych przerwaniach, więc po zakończeniu blokady możesz je
znowu włączyć (zamiast przywrócić stan poprzedni).

Re: książka o programowniu AVR w C
nie wiem czy nie podpadnę, ale zapytam: czy coś na temat książki się dowiem?
w tym mega wątku...


Re: książka o programowniu AVR w C
Quoted text here. Click to load it

A co chcesz wiedzieć? Książka wczoraj do mnie dotarła, wg mnie całkiem fajna
pozycja. Poza tym przecież masz w tamtej aukcji pdf z dostępnym rozdziałem i
spisem treści, wg mnie na podstawie tego całkiem sporo można powiedzieć na
temat tej książki.
W odróżnieniu od  "Mikrokontrolery AVR programowanie w języku C"
A.Witkowskiego nie stanowi ona suchego opisu opcji kompilatora, rodzaju
zmiennych, ale pokazuje jak rozwiązywać praktyczne problemy.

Czy będziesz zadowolony? No cóż zależy jaki jest twój stopień zaawansowania.
Jeśli na AVR w C napisałeś już z 10 projektów, to obejdziesz sę bez tej
książki.
Jeśli dotąd korzystałeś z gotowych bibliotek i nie zhańbiłeś się
bezpośrednią obsługą pryferii też chyba będziesz zadowolony.


Re: książka o programowniu AVR w C
Quoted text here. Click to load it

o to mi chodziło, dzięki.


Site Timeline