Ech, to jak to jest z przerwaniami w 8051

Sep 25, 2006 6 Replies

Witam


Czyta³em PDF'a do 8051 ale czy to, dlatego ¿e s³abo znam angielski czy mo¿e, dlatego ¿e katalog tego nie wyja¶nia³ mam pewien niedosyt. Wiem, ¿e 8051 na



2 poziomy przerwañ i ¿e Timer0 ma wy¿szy priorytet ni¿ Timer1. Ale co je¶li chcê mieæ 3 przerwania, int0 ustawiony jako "high lewel" i TF0 i TF1 jako "low lewel" Timer0 i timer1 zliczaj± ten sam wewnêtrzny zegar, ale s± ustawione na inne stopnie podzia³u. Mimo to, co jaki¶ czas musz±, generowaæ przerwanie w tym samym czasie. I tu pytanie co z przerwaniem od TF1 w trakcie obs³ugi przerwania od TF0 ? Czy ono "zginie" czy te¿ procesor "zapamiêta je" i zacznie obs³ugiwaæ zaraz po skoñczeniu przerwania TF0? Czyli czy zaraz po wykonaniu "reti" w obs³udze TF0 zostanie rozpoczête przerwanie TF1?


MArek



U¿ytkownik "Totylkoja" snipped-for-privacy@nie.chce.tego.poczta.fm> napisa³ w wiadomo¶ci news:ef885h$53v$ snipped-for-privacy@nemesis.news.tpi.pl...

Nie zginie.

Jesli sa na tym samym priorytecie to inne przerwanie, ktore sie przytrafi w trakcie wykonywania procedury obslugi przerwania zaczeka do jego skonczenia tzn. do reti. I chyba, o ile pamietam, wykona sie jedna instrukcja z glownego programu. Nastepnie wskoczy do obslugi tego czekajacego przerwania.

witam

U¿ytkownik "Andy" snipped-for-privacy@ceti.pl napisa³ w wiadomo¶ci news:ef8f6o$ad2$ snipped-for-privacy@elrond.ghnet.pl...

No to kamieñ z serca

Bo ju¿ siê ba³em ¿e raz na jaki¶ czas bêdzie gin±æ i bêdzie mi siê rozje¿d¿a³ pomiar o to jedno przerwanie

MArek

Spinacz biurowy, Andy snipped-for-privacy@ceti.pl!

A jeśli to drugie przerwanie zostanie zgłoszone np. 2x?

zostanie utracone i przerwanie zostanie wykonane jednokrotnie. Jedna flaga przerwania mo¿e zg³osiæ tylko wyst±pienie jednego zdarzenia. Pozdrawiam Darek

Dawno bawilem sie '51, ale wydaje mi sie ze nie do konca jest to prawda. Moim zdaniem programista ma obowiazek po wejsciu do funkcji obslugi przerwania skasowac flage. Jesli ponowne ustawienie flagi nastapi przed jej skasowaniem to rzeczywiscie bedzie tak jak kolega napisal. Jesli natomiast flaga zostanie ponownie ustawiona po jej skasowaniu to po zakonczniu bierzacego przerwania znowu zostanie ono wywolane. Zaznaczam, ze pisze o tym samym przerwaniu. Tak jak napisalem dawno zajmowalem sie '51-ami i moge sie mylic.

Jacek M.

nie do koñca i nie tyczy siê to tylko 51, avr ma podobnie a mianowicie, s¹ przerwania dla których przyjêcie przerwania kasuje flagê a s¹ takie gdzie trzeba to robiæ z "³apy" w procedurze obs³ugi.

Ja pisa³em natomiast, zgodnie z tematem, o ró¿nych przerwaniach. Je¿eli mamy przerwania o tym samym priorytecie A i B to wykonuj¹c procedurê obs³ugi A nie mo¿na stwierdziæ czy przerwanie B pojawi³o siê 1x czy 10x, dlatego obs³uga przerwania powinna trwaæ minimaln¹ liczbê cykli zegarowych.

Pozdrawiam Darek

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required