Witam,
Wlasnie zglebiam wiedze na temat u-kontrolerow. Pewna rzecz mnie zaskoczyla - chodzi o traktowanie przerwan zaistnialych w czasie obslugi innych przerwan. Otoz wyczytalem, ze przerwanie o nizszym priorytecie nie powoduje odlozenia obslugi przerwania o wyzszym priorytecie (slusznie), ale nie bedzie obsluzone nawet po zakonczeniu obslugi przerwania wazniejszego, czyli zostanie zignorowane. Mam wrazenie, ze ten mechanizm stanowi istotne utrudnienie w pisaniu programow wieloprzerwaniowych.
Dlaczego zatem procesory sa zaopatrzone w taki sposob obslugi przerwan? Czy przymusowe ignorowanie przerwania stanowi jakas istotna funkcje, czy tez wprowadzenie innego rozwiazania wiaze sie z trudnosciami w realizacji? Czy istnieja procesory, w ktorych problem nie wystepuje?
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięmikroprocesory - przerywanie przerwan
Moderatorzy:Jacek Bogusz, Moderatorzy
-
- -
- Posty:175
- Rejestracja:10 paź 2003, o 20:44
- Lokalizacja:Białystok
- Kontaktowanie:
Re: mikroprocesory - przerywanie przerwan
Na ogół mamy do czynienia z dwoma rodzajami przerwań :Otoz wyczytalem, ze przerwanie o nizszym priorytecie nie powoduje odlozenia obslugi przerwania o wyzszym priorytecie (slusznie), ale nie bedzie obsluzone nawet po zakonczeniu obslugi przerwania wazniejszego, czyli zostanie zignorowane.
- wyzwalanymi zdarzeniem - zdarzenie ( np. przepełnienie licznika,
odebranie znaku itp. ) ustawia odpowiednią flagę, która nie jest w międzyczasie kasowana - jak procesor skończy z wyższym priorytetem to
znajduje zapaloną flagę przerwania niższego priorytetu i przystępuje do obsługi. Przerwanie nie jest więc tracone ( inna sprawa, że jesli takie samo jest wywoływane często to zwłoka może spowodować zgubienie niektórych zdarzeń - np. znaków w transmisji ).
- wyzwalanymi warunkiem ( np. niskim poziomem na pinie ) - jeśli nie obsłużymy od razu a w międzyczasie warunek zniknie ( np . gdy chcemy wykryć krótki impuls na wejściu ) to rzeczywiście przerwanie zostanie stracone ( gdy uP ma czas na obsługę to już nie ma co obsługiwać ).
Pozdrowienia Jurek S.
mw158979 - dobrze wyczytałeś i kolega Jurek Szczesiul dobrze to opisał, zapomniał tylko dodać że ten przypadek który ty opisujesz odnosi się tylko do przerwania zewnętrznego INT.
tz nie napisał że jeżeli ustawisz przerwanie INT od opadającego zbocza to przypadek nie wykonania przerwania tu nie występuje bo flaga będzie ciągle zapalona i procek ją kiedyś wykona.
czyli procek nie zauważa przerwania tylko od niskiego stanu na wej INT.
pamiętaj również o przerwaniu od RS232 tak jak to napisał kolega
tz nie napisał że jeżeli ustawisz przerwanie INT od opadającego zbocza to przypadek nie wykonania przerwania tu nie występuje bo flaga będzie ciągle zapalona i procek ją kiedyś wykona.
czyli procek nie zauważa przerwania tylko od niskiego stanu na wej INT.
pamiętaj również o przerwaniu od RS232 tak jak to napisał kolega
Kto jest online
Użytkownicy przeglądający to forum: Google [Bot] i 0 gości