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

mw158979
-
-
Posty:48
Rejestracja:28 lis 2003, o 20:09
Lokalizacja:Warszawa
mikroprocesory - przerywanie przerwan

Postautor: mw158979 » 5 wrz 2004, o 12:39

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?

Jurek Szczesiul
-
-
Posty:175
Rejestracja:10 paź 2003, o 20:44
Lokalizacja:Białystok
Kontaktowanie:

Re: mikroprocesory - przerywanie przerwan

Postautor: Jurek Szczesiul » 5 wrz 2004, o 15:42

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.
Na ogół mamy do czynienia z dwoma rodzajami przerwań :
- 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.

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 5 wrz 2004, o 17:30

Mw158979, a o jaki procek chodzi?

mw158979
-
-
Posty:48
Rejestracja:28 lis 2003, o 20:09
Lokalizacja:Warszawa

Postautor: mw158979 » 5 wrz 2004, o 20:49

Czytalem o 8051.

Ale chyba czegos nie doczytalem...
Sprobuje jeszcze raz.

GasM
-
-
Posty:92
Rejestracja:4 lut 2004, o 11:57

Postautor: GasM » 6 wrz 2004, o 08:20

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

Wróć do „Elektronika - tematy dowolne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 85 gości