Unterschied zwischen Low-Level Triggered, pegel- und flankengesteuerten IRQs

OP #878794
Lesenswert?
• ▲
▼
Hallo zusammen,

ein echt tolles Forum hier! Ich versuche mich seit einigen Wochen in die 
Thematik uController einzuarbeiten und stehe gerade bei Interrupts. 
Koennte mir mal jemand die Unterschiede zwischen

- flankengesteuerten Interrupts
- pegelgesteuerten Interrupts
- und Low-Level Triggered IRQs

erklaeren? Wann verwendet man welche und wann koennen welche wie 
verloren gehen?

Danke fuer jede Erklaerung schonmal im Voraus!

Gruesse

ricci008
#878804
Lesenswert?
• ▲
▼
Low-Level sowie High-Level Interrupts sind pegelgesteuerte Interrupts.

Der Untschied:
Beim flankengesteuerten Interrupt löst der Interrupt beim Wechsel von 
High-auf Low, oder / und beim Low-High Wechsel aus. Und nur dann!

Der pegelgesteuerte Interrupt löst bei High, oder Low-Signal aus.

Wenn Du ein flankengesteuerten Interrupt verlässt, wird er erst bei der 
n. Flanke wieder betreten. Beim pegelgesteuerten Interrupt hingegen wird 
der Interupt nach dem verlassen gleich wieder betreten, wenn der Pegel 
noch immer anliegt. Du musst also in deiner ISR dafür sorgen, dass der 
Pegel, der den Interrupt ausgelöst hat, sich wieder ändert.

Ein flankengesteuerter Interrupt "könnte" eher verloren gehen, da dieser 
nur einmal auslöst.

VG

Fabian
#879030
Lesenswert?
• ▲
▼
Richard,

Das was Fabian da schrub ist völlig richtig, aber in einem (wichtigen) 
Detail nicht ganz präzise:

>>Beim pegelgesteuerten Interrupt hingegen wird
>>der Interupt nach dem verlassen gleich wieder betreten, wenn der Pegel
>>noch immer anliegt.
Der INT wird nicht wirklich GLEICH wieder betreten, es wird zuvor EIN 
Befehl des Hauptprogramms abgearbeitet.

>>Du musst also in deiner ISR dafür sorgen, dass der
>>Pegel, der den Interrupt ausgelöst hat, sich wieder ändert.
Ja, oder den INT über ein spezifisches oder globales Flag abschalten.

Jochen Müller
#882065
Lesenswert?
• ▲
▼
> Ein flankengesteuerter Interrupt "könnte" eher verloren gehen, da
> dieser nur einmal auslöst.


Ich würde das eher umgekehrt sehen, denn:

Bei einem flankengetriggerten Int wird im Controller ein Flag gesetzt, 
in dem die Int Anforderung gespeichert bleibt und irgendwann später 
abgearbeitet werden kann.

Bei einem pegelgetriggerten Int kann das Triggersignal dagegen bis zur 
Auslösung des Int schon wieder inaktiv sein, dann passiert einfach gar 
nichts.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren