'51 - przerwanie ext wyzwalane poziomem/zboczem

Witam,

Czym się różnią te dwa scenariusze wywoływania przerwania z linii zewnętrznej? Rozumiem że wyzwalanie zboczem dotyczy opadającego zbocza, a poziom - poziomu niskiego. Jaka jest zatem różnica? Czy możliwe jest wywołanie przerwania przy zboczach opadających i rosnących bez dodatkowych układów logicznych?

P.

Reply to
Piotr C.
Loading thread data ...

Użytkownik Piotr C. napisał:

najlepiej sprawdz na emulatorze, przy wyzwalaniu poziomem moze nastapic sytuacja taka: program w petli glownej cos tam sobie dlubie... pojawia sie zadanie przerwania, proc wykonuje procedurke koniec procedury, wykonywane jest kolejne polecenie po tym na ktorym wystapilo zadanie przerwania ale ale.... na linii INTx nadal jest L czyli mamy zadanie przerwania i tak do czasu az ktos laskawie raczy zdjac zapomniany sygnal

nie

Reply to
AlexY

Przerwanie zostanie wywolanie przez ujemne zbocze jezeli w poprzednim cyklu zegarowym stan na nozce bym wysoki, a w aktualnym jest niski. Potem stan niski moze pozostac bez zmian, ale przerwanie nie zostanie wywolane powtornie.

Bartek.

Reply to
brtlmj

Użytkownik Piotr C. napisał:

Przy wyzwalaniu zboczem jak przyjdzie jeden "ujemny impuls" to przerwanie wywołane zostanie tylko raz, niezależnie od długości impulsu.

Przy wyzwalaniu poziomem niskim, jeśli impuls niski będzie trwał dłużej niż czas wykonania obsługi przerwania, to zaraz po wyjściu z procedurki przerwania (kiedy przerwanie jest odblokowywane) wywołane zostanie następne przerwanie... a potem następne ... i następne.

W praktyce powoduje to zupełne zablokowanie pracy programu głównego na czas trwania tego niskiego poziomu - procek "kręci się w kółko" w procedurze obsługi przerwania. Jak używasz też innych przerwań, to zablokuje ci też obsługę tych innych o niższym priorytecie.

Reply to
zenek

Użytkownik zenek napisał: [...]

niezupelnie proc wykona jedno polecenie po wyjsciu z obslugi przerwania, dopiero wtedy ponownie wejdzie w przerwanie, w praktyce petla glowna zostanie spowolniona niemal do zerowej predkosci ale dzialac bedzie

Reply to
AlexY

Dokladniej mowiac, najwyzej jeden raz, bo jezeli impuls bedzie krotszy od okresu zegara / 12, to przerwanie moze nie zostac wywolane wcale.

Bartek.

Reply to
brtlmj

Bo impuls ma trwac az/tylko tak dlugo az przerwanie jest nieobsluzone! W procedurze obslugi przerwania robisz cos co impuls kasuje.

Ale dzieku temu mozna podlaczyc kilka zrodel przerwan do jednego pina i sie nie zastanawiac czy przy jakiejs okazji nie zostanie przerwanie zgubione - np drugi impuls nadejdzie w trakcie obslugi przerwania ...

J.

Reply to
J.F.

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.