AVR-GCC, przerwanie od USARTa, konkurs i piwo w nagrode ;)

Apr 01, 2004 12 Replies

Witam! Ostatnio drobny b³¹d w programie kosztowa³ mnie ³adnych kilka dni my?lenia i nerwów. Doszed³em ju¿ o co chodzi, ale ku przestrodze innym... Og³aszam konkurs - pierwsza osoba która zgadnie co jest ?le w poni¿szym kodzie i powoduje wieszanie siê procka dostanie ode mnie piwo.



INTERRUPT (SIG_USART0_RECV) { if (UDR0==' ') odebrano=true; }



Podpowiedzi:



- zmienna odebrano jest zdefiniowana jako bool volatile



- reszta kodu jest ok, przerwania w³¹czone, odbiornik oczywi?cie te¿ itd.



- przerwanie powinno w przypadku odebrania spacji ustawiæ flagê odebrano



- w rzeczywisto?ci gdy _cokolwiek_ przyjdzie na USART0 (niekoniecznie spacja) procek (ATmega 162) wisi



Czekam na poprawne odpowiedzi!


Pozdrowienia Dariusz Rzoñca

Witam!

Zamien INTERRUPT na SIGNAL !! Po szczegoly odsylam do FAQ projektu AVRSide...

Tomek

U¿ytkownik "Darek R." snipped-for-privacy@w.pl napisa³ w wiadomoœci news:c4i9dv$oh5$ snipped-for-privacy@nemesis.news.tpi.pl...

pewnie nie kasuje sie flaga zgloszenia przerwania i po zakonczeniu obslugi wchodzi znow do przerwania

U¿ytkownik "Tomek" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:c4iaj7$3cl$ snipped-for-privacy@news.onet.pl...

no fakt jak sie tylko przerwania odblokuja to zaraz wchodzi ponownie do tej proc obslugi zanim odczyta z UDR0

U¿ytkownik "Darek R." snipped-for-privacy@w.pl napisa³ w wiadomoœci news:c4i9dv$oh5$ snipped-for-privacy@nemesis.news.tpi.pl...

Klasyczny przyk³ad z³ego u¿ycia procedury obs³ugi przerwania typu INTERRUPT (z w³¹czon¹ obs³ug¹ przerwañ w przerwaniu) dla przerwania zg³aszanego warunkiem.

QmX.

A dlaczego u¿ywasz interrupt zamiast signal w takim wypadku??

Mister

U¿ytkownik "Mister" <wojpie@wywal_to.poczta.onet.pl> napisa³ w wiadomo¶ci news:c4j55r$gfb$ snipped-for-privacy@atlantis.news.tpi.pl...

Kiedy¶ zrobi³em literówkê w nazwie wektora przerwania. :-) AVR-GCC nie raczy³ o tym poinformowaæ. Dopiero po analizie kodu wynikowego doszed³em do tego dlaczego proc siê ci±gle resetowa³. :-)

QmX.

W artykule <c4i9dv$oh5$ snipped-for-privacy@nemesis.news.tpi.pl> Darek R. napisal(a):

Darek, musiałbyś to piwo skrzynkami nam rozdawać ;-))) Ale jaką człowiek ma satysfakcję (i pustkę, bo co nagle robić z nadmiarem wolnego czasu), kiedy taki błąd roztrzaska...

Pozdrawiam

Marcin Stanisz

Tomek napisa³:

Dok³adnie! Gratulujê zwyciêstwa, s³owo siê rzek³o, piwo u p³ota, po szczegó³y zapraszam na priv. BTW: W faq tego nie znalaz³em - mo¿e wtedy krócej bym nad tym siedzia³ (u siebie nie mia³em dwóch linijek kodu do przeanalizowania tylko kilkaset - po prostu procek siê nagle wiesza³...).

QmX napisa³:

Dobrze, ale za pó¼no - nagroda by³a tylko jedna ;)

Mister napisa³:

No w³a¶nie chyba po to ¿eby potem nad tym siedzieæ i zastanawiaæ siê czemu siê zawiesza ;)

Marcin Stanisz napisa³:

Nie no, piwo w nagrodê by³o jedno, dla pierwszego odpowiadaj±cego. Ale nastêpnym razem zrobiê inaczej - jak siê gdzie¶ znowu zatnê w programie to od razu siê Was zapytam ;)))

Satysfakcja jest, to fakt. Pustki nie ma - po prostu robi siê projekt dalej, pamiêtaj±c ju¿ na ca³e ¿ycie o unikaniu podobnych b³êdów.

U¿ytkownik "Tomek" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:c4iaj7$3cl$ snipped-for-privacy@news.onet.pl...

Rzuæcie jaki¶ link. Nie mogê tego znale¼æ... Wojtek

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required