AVR - priorytety przerwań

Witam Nie mogę sie doczytać, czy rodzina AVR posiada coś takiego jak priorytety przerwań? Tzn. jedno przerwanie jest nadrzędne względem innych. Może jest jakaś sprzętowa obsługa jak w '51 żeby nie robić tego na piechotę? Z góry dzięki za wszelką pomoc.

Pozdrawiam

Reply to
Luk
Loading thread data ...

Luk@sz napisał(a):

Niestety, nie ma priorytetow. Przerwania sa obslugiwane w kolejnosci wystapienia, a wielokrotne wystapienie przerwania X w trakcie obslugi przerwania Y zostanie zarejestrowane tylko jako jednokrotne...

Reply to
BartekK

BartekK napisał(a):

E... coś pomieszałeś? Przecież są priorytety, jest o tym w każdym datasheet, im nizszy adres wektora tym wyższy priorytet ma przerwanie.

Przecież można obsłużyć przerwanie o wyższym priorytecie podczas trwania obsługi niższego. Widzę że jesteś zwolennikiem wyłączonego bitu IE przez caly czas obslugi każdego przerwania...

Tylko w wypadku kiedy nie skończysz obsługiwać przerwania X zanim nadejdzie kolejne zgłoszenie od X.

Reply to
DJ

DJ napisał(a):

E, co ja gadam... tu jest jeszcze inaczej. Kolejne zgłoszenie od X, może przyjść już po tym jak zaczniesz obsługiwać poprzednie od X. Przecież flaga zgłoszenia przerwania jest kasowana sprzętowo tuż po rozpoczęciu jego obsługi... I już można zaflagować następną obsługę...

Reply to
DJ

DJ przemówił ludzkim głosem:

To o czym piszesz to kolejność obsługi przerwań, a nie priorytet.

Ale w ten sposób nie możesz zdecydować o tym, _które_ przerwanie może przerwać (czyli ma wyższy priorytet) obsługę bieżącego przerwania, a które nie (bo ma niższy priorytet).

Reply to
Zbych

DJ napisał(a):

A jak zrobisz zeby przerwanie X mialo "wyzszy priorytet" od przerwania Y ? A chwile pozniej, by bylo odwrotnie? Adresy wektorow sa "na stale" w flashu zlokalizowane, nie da sie tutaj nic zmienic, oprocz tego ze jakis tam priorytet jest i koniec.

Reply to
BartekK

BartekK napisał(a):

No i to właśnie jest priorytet. Nikt tu nigdzie nie pytał o zmianę priorytetów runtime. Pisałeś że priorytetów w AVR nie ma. Ja piszę że ma. Tyle. Nie mieszajmy pojęć.

Reply to
DJ

DJ napisał(a):

Dziękuję wszystkim za uwagi. Uściślając to pisząc priorytety przerwań miałem na myśli możliwość przyjęcia przerwania X podczas trwania obsługi przerwania Y. Z tego co udało mi się zorientować to w rodzinie AVR nie ma możliwości zmiany tych priorytetów i są one ustalone na stałe. Liczyłem na jakieś zgrabne, sprzętowe rozwiązanie ale jednak bez gimnastyki się nie obejdzie. W tym momencie ukłon w stronę starej poczciwej '51 :)

Pozdrawiam

Reply to
Luk

Przecież możesz przyjąć nawet 100 innych przerwan X podczas obsługi przerwania Y. Ja nie widzę tu żadnego problemu. A w 51 to nie było MOŻLIWE. Nie róbmy problemów tam gdzie ich nie ma.

Mister

Reply to
Mister

Użytkownik "Mister":

W 51 to jest takze mozliwe !

Heliogabal

Reply to
Heliogabal

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.