Forum: Mikrocontroller und Digitale Elektronik Unterschied zwischen Low-Level Triggered, pegel- und flankengesteuerten IRQs


von Richard H. (ricci008)


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

von Fabian H. (hdr)


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

von Richard H. (ricci008)


Lesenswert?

Super, das ging ja schnell!

Und was ist der Unterschied zwischen Low- und How-Level Triggered 
Interrupts?

von Jochen M. (taschenbuch)


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

von Andreas K. (a-k)


Lesenswert?

Jochen Müller wrote:

> Der INT wird nicht wirklich GLEICH wieder betreten, es wird zuvor EIN
> Befehl des Hauptprogramms abgearbeitet.

Das mag auf AVRs zutreffen, ist aber nicht bei allen Architekturen 
zwingend.

von Richard H. (ricci008)


Lesenswert?

Super, wieder viel dazugelernt. Ein super Forum, ganz groszes 
Kompliment!!!

Richard.

von Dieter W. (dds5)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.