Low-Level-IRQ und IRQ durch fallende Flanke. Was ist der Unterschied

OP #5497170
Lesenswert?

Hallo
Ich habe da ein kleines Verständniss-Problem bezüglich 
Low-Level-Interrupt und Interrupt durch fallende Flanke.
So wie ich das verstanden habe, wird beim Low-Level-Irq ein Interrupt 
ausgelöst, wenn z.B. der Pin INT0 auf Low geht.
Das heisst aber doch, das er vor dem IRQ auf High gewesen sein muss und 
dann auf Low ging. Also praktisch auch auf eine fallende Flanke 
reagiert. Worin besteht also der Unterschied zu einem IRQ der durch eine 
fallende Flanke ausgelöst wird ?
#5497177
Lesenswert?

@ Hans I. (obiwahn)

>reagiert. Worin besteht also der Unterschied zu einem IRQ der durch eine
>fallende Flanke ausgelöst wird ?

Die fallende Flanke kann sehr kurz sein und schon nach wenigen Dutzend 
ns wieder auf HIGH gehen. So ein IRQ benötigt einen laufenden CPU-Takt, 
um erkannt zu werden.

Ein LOW Level IRQ muss deutlich länger auf LOW bleiben, einige Dutzend 
us. Er kann auch ohne laufenden CPU-Takt erkannt werden und somit die 
CPU aus einem tiefen sleep mode wecken.
Gast #5497193
Lesenswert?

Hans I. schrieb:
> Das heisst aber doch, das er vor dem IRQ auf High gewesen sein muss und
> dann auf Low ging. Also praktisch auch auf eine fallende Flanke
> reagiert. Worin besteht also der Unterschied zu einem IRQ der durch eine
> fallende Flanke ausgelöst wird ?

Der LowLevel triggert so lange der Level low ist, der Edge nur bei 
einmal bei fallender Flanke.
Beitrag #5497201 wurde von einem Moderator gelöscht.
Gast #5497219
Lesenswert?

Hans I. schrieb:

> So wie ich das verstanden habe, wird beim Low-Level-Irq ein Interrupt
> ausgelöst, wenn z.B. der Pin INT0 auf Low geht.

Falsch. Der wird ausgelöst, sobald für eine gewisse Mindestzeit (siehe 
DB)  Low-Pegel anlag. Und er bleibt auch aktiv, solange dieser Low-Pegel 
weiterhin anliegt, auch wenn die ISR bereits durchlaufen wurde. Sie wird 
also immer und immer wieder durchlaufen, wenn man nix dagegen tut.

Beim Falling-Edge-Interrupt hingegen löst tatsächlich bereits die 
fallende Flanke den IRQ aus. Und er wird beseitigt, wenn die ISR 
aufgerufen wird. Erst die nächste fallende Flanke kann ihn erneut 
auslösen.

Aber mal 'ne Frage: warum fragst du uns das? Das steht doch alles 
haarklein im DB beschrieben. Kannst du nicht lesen oder willst du nur 
nicht?
Gast #5497238
Lesenswert?

A. K. schrieb:

> Schon mal versucht, auf einen pegelgetriggerten Interrupt mehrere
> Interrupt-Quellen zu legen?

Witzig. Tatsächlich ist das sogar der einzige zuverlässige Weg. Benötigt 
aber natürlich ggf. externe Logik...

Oft ist die Logik in Peripherie aber eigentlich genau schon dafür 
ausgelegt. Siehe z.B. RFM12 (aber auch sehr viele andere, z.B. die 
Interruptcontroller von PCs).

Solche Peripherie ist explizit dafür gedacht, an (Low-)Level 
Interrupteingängen betrieben zu werden. Betrieb an Edge-Interrupts 
gebiert hier die Gefahr von race conditions (nicht erkannte 
Interruptanforderung) und damit in der Folge ein "Einschlafen" der 
Peripherie. Die scheint dann nix mehr zu tun, tatsächlich wartet sie 
aber sehnsüchtig darauf, dass du was tust und zeigt das auch 
eindringlich durch den Low-Pegel an, von dem du allerdings eben u.U. nix 
mitbekommst, weil es keine Flanke zwischendurch gab, weil die neue 
IRQ-Situation eintrat, bevor die alte vollständig abgehandelt war und 
damit die IRQ-Leitung zwischenzeitlich kein High-Level erreichen 
konnte...
OP #5497409
Lesenswert?

Ok. Aus euren Antworten wird schon klar, welcher IRQ für welche 
Anwendungen sinnvoller ist.
Danke Leute. Bin wieder ein Stückchen schlauer.

An c-hater
Das DB ist in Englisch und das ist leider nicht meine stärke. In meinem 
Fall ist das mehr ein zusammenreimen als ein übersetzen.
Zu meiner Verteidigung kann ich nur sagen , das zu der Zeit, als ich in 
der Schule Englisch lernen sollte (das war kurz nach dem Urknall), 
brauchte man Englisch nur, wenn man in England Urlaub machen wollte. 
Dementsprechend gering war damals meine Motivation das zu lernen. Heute 
sieht die Welt anders aus und ja, ich muss zugeben, das ich mich heute 
darüber ärgere.
(Firma: Schweigstill IT) Persönliche Seite #5497423
Lesenswert?

Hans I. schrieb:
> Heute sieht die Welt anders aus und ja, ich muss zugeben, das ich
> mich heute darüber ärgere.

Seit einigen Jahren gibt es auch mehr und mehr Bauteile, für die gar 
keine englischsprachigen Datenblätter mehr erhältlich sind, sondern nur 
nur welche auf Chinesisch (Hochchinesich bzw. Mandarin). Meist hat man 
aber das Glück, dass zumindest wichtige Parameter mit lateinischen 
Buchstaben und arabischen Zahlen dargestellt sind.

In ein paar Jahren kann das aber komplett anders aussehen. Wenn sich der 
Handelskrieg mit den USA auch auf elektronischen Bauteile ausweiten 
sollte, werden wir künftig wesentlich häufiger mit solchen Datenblättern 
konfrontiert werden.
(Firma: matzetronics) #5497522
Lesenswert?

S. Landolt schrieb:
> Weshalb wacht dann z.B. ein ATmega328 damit aus Power-down auf?

Das ist eine Besonderheit der PC Interrupts, die ich auch lernen musste. 
Im Powerdown reicht ein Flankenwechsel auf INT0 oder INT1 nicht aus, da 
nur level-getriggerte Interrupts erkannt werden. Bei PC Interrupts 
hingegen wird der Flankenwechsel unabhängig vom aktiven Takt erkannt, 
also auch bei Power Down.
Die Fussnote 3 ist hierbei das entscheidende.

Das ist allerdings kein grosses Problem, da sowohl INT0 als auch INT1 
auf PC Interrupts konfiguriert werden können.
Angehängte Dateien:
#5497622
Lesenswert?

@S. Landolt (Gast)

>Ich wollte nur auf den Fehler von Falk Brunner hinweisen.

Soso, wolltest du das? Ist wohl nicht ganz gelungen.

Meine Aussagen sind korrekt, denn vom Pin Change Interrupt war nie die 
Rede, auch wenn die ebenfalls flankengetriggert sind. Die Frage bezog 
sich auf die "klassischen", externen Interrupts.
Gast #5497819
Lesenswert?

Falk Brunner schrieb:

> Die fallende Flanke kann sehr kurz sein und schon
> nach wenigen Dutzend ns wieder auf HIGH gehen.
> So ein IRQ benötigt einen laufenden CPU-Takt,
> um erkannt zu werden.


>Die Frage bezog sich auf die "klassischen", externen Interrupts.


Mir ist nicht ganz klar, was Sie unter "klassisch" verstehen. Ich bezog 
mich auf die AVR8.

Der ATmega16 als schon älterer uC hat den INT2 (kein 
Pin-Change-Interrupt), der eine Flanke asynchron erkennt, folglich 
keinen
> ... laufenden CPU-Takt ...
benötigt.


> Die fallende Flanke kann sehr kurz sein und schon nach
> wenigen Dutzend ns wieder auf HIGH gehen.
> ,,, denn vom Pin Change Interrupt war nie die Rede ...

Und dies hier bekomme ich dann auch nicht zusammen, denn im Datenblatt 
des alten ATmega8 z.B. lese ich "If edge or toggle interrupt is 
selected, pulses that last longer than one clock period will generate an 
interrupt. Shorter pulses are not guaranteed to generate an interrupt", 
wird also mit
> wenigen Dutzend ns
nicht funktionieren.
#5498010
Lesenswert?

@S. Landolt (Gast)

>>Die Frage bezog sich auf die "klassischen", externen Interrupts.

>Mir ist nicht ganz klar, was Sie unter "klassisch" verstehen.

Eben das, was das Wort klassisch bedeutet.

https://de.wikipedia.org/wiki/Klassik

Eben die Interrupts, welche die AVRs seit ihrer ersten Generation haben.

>Ich bezog mich auf die AVR8.

Das interessiert mich keine Sekunde, denn der OP hat davon auch nicht 
gesprochen. Also hör auf den Schlauberger zu spielen und auf andere 
Leute "Fehler hinzuweisen".
Gast #5498016
Lesenswert?

Falk B. schrieb:
> Also hör auf den Schlauberger zu spielen und auf andere
> Leute "Fehler hinzuweisen".
Hm, das machst Du selbst aber nur zu gerne mein lieber Falk und das dann 
auch oft in einem recht robusten Ton.
Sein mal nicht so dünnhäutig, das darf man bei Dir schliesslich auch 
nicht sein.
#5498025
Lesenswert?

@Michael K. (Firma: Knoelke Elektronik) (knoelke)

>> Also hör auf den Schlauberger zu spielen und auf andere
>> Leute "Fehler hinzuweisen".
>Hm, das machst Du selbst aber nur zu gerne mein lieber Falk und das dann
>auch oft in einem recht robusten Ton.

Nur mit dem "kleinen" Unterschied, daß ich sachliche Argumente bringe 
und damit meisten recht habe, ich Gegensatz zu unserem neunmalklugen 
Besserwisser.

>Sein mal nicht so dünnhäutig, das darf man bei Dir schliesslich auch
>nicht sein.

Ich muss nicht jeden kleinen Kläffer rumbellen lassen, da darf und muß 
man auch mal ne Ansage machen. Done!
Gast #5498043
Lesenswert?

Falk ist bestimmt nicht der umgänglichste oder der mit den besten 
Manieren, aber fachlich zieht er den Schnitt hier kräftig nach oben.
Nur Nette ohne Plan ist auch keine Lösung.

Wenn da wieder so ne 'ich bin der geilste und eure Stümperei kotzt micht 
an' Nummer kommt, roll ich mit den Augen und zieh mir das nicht so rein.
Gast #5498055
Lesenswert?

Michael K. schrieb:
> Falk ... fachlich zieht er den Schnitt hier kräftig nach oben

Seine Fachkompetenz ist unbestritten; das heißt aber nicht, dass ihm 
keine Fehler unterlaufen. Und als solchen betrachte ich einen Teil 
seines allerersten Beitrages, das wird man doch diskutieren dürfen, 
davon lebt schließlich dieses Forum.
#5498066
Lesenswert?

@Erik B. (erik_b976)

>Ihr wisst aber schon, dass es auch Latches gibt, oder?

Ach was?

>Damit kann ich auch ausm Tiefschlaf ohne Clock aufwachen.

Das ist gar nicht die Frage, sondern wie sich die klassischen Interrupt 
des AVR verhalten. Eben das wurde KORREKT von mir beschrieben. Was 
THEORETISCH sowie PRAKTISCH bei den neueren Generationen von AVRs mit 
Pin Change Interrupt möglich ist, war gar nicht gefragt.
Gast #5498069
Lesenswert?

S. Landolt schrieb:
> das wird man doch diskutieren dürfen,

Falk B. schrieb:
> Das mit dem sinnerfassenden Lesen üben wir dann doch besser noch mal.

Hahahaha ...
Genau so !
Dieses Spiel könnt ihr jetzt den ganzen Tag weiterspielen bis der Thread 
wegen wüster Beleidigungen gesperrt wird.
Einfach mal locker lassen.
Jeder ist alles losgeworden ausser dem eigenen Ego ...
Wenn ihr das jetzt auch noch klären wollt dann geht bitte vor die Tür.
#5498074
Lesenswert?

@ S. Landolt (Gast)

>> Falk ... fachlich zieht er den Schnitt hier kräftig nach oben

>Seine Fachkompetenz ist unbestritten; das heißt aber nicht, dass ihm
>keine Fehler unterlaufen.

Das habe ich nie behauptet. Und ich stehe zu meinen Fehlern. Aber dann 
sollten es schon wirklich Fehler sein und nicht naseweise Korrekturen, 
die keine sind.

>Und als solchen betrachte ich einen Teil
>seines allerersten Beitrages, das wird man doch diskutieren dürfen,

Ja, aber deine Argumente waren falsch, weil am Thema vorbei!

Wenn ich sage 1+1=2 kannst du nicht schreien, falsch, 2+2=4!
#5498076
Lesenswert?

@Michael K. (Firma: Knoelke Elektronik) (knoelke)

>Wenn da wieder so ne 'ich bin der geilste und eure Stümperei kotzt micht
>an' Nummer kommt, roll ich mit den Augen und zieh mir das nicht so rein.

Ja, solche Auftritte gibt es hier, aber eher selten von mir. Da sind 
MaWin, c-hater und Konsorten eher vorn dabei.
#5498079
Lesenswert?

Falk B. schrieb:
> sondern wie sich die klassischen Interrupt
> des AVR verhalten

Du musst eine Glaskugel besitzen, im Ursprungspost war kein Prozessor 
genannt und trotzdem deine Antwort, dass für Flanken-IRQ eine Clock 
benötigt wird.


Deshalb meine Anmerkung, dass es für die Erkennung bzw. das Aufwachen 
dank Latches völlig unerheblich ist, welcher Art ein IRQ Signal ist.

Wichtig ist lediglich, dass ein Flanken IRQ als Event im IRQ Controller 
gespeichert und dann gecleart werden muss, während ein Level IRQ solange 
pending bleibt bis entweder die Ursache beseitigt oder er maskiert wird.
#5498087
Lesenswert?

@Erik B. (erik_b976)

>> sondern wie sich die klassischen Interrupt
>> des AVR verhalten

>Du musst eine Glaskugel besitzen, im Ursprungspost war kein Prozessor
>genannt und trotzdem deine Antwort, dass für Flanken-IRQ eine Clock
>benötigt wird.

Ja, hab ich. Nennt sich Statistik und Intuition. Damit ist der AVR der 
beste Kandidat.

>Deshalb meine Anmerkung, dass es für die Erkennung bzw. das Aufwachen
>dank Latches völlig unerheblich ist, welcher Art ein IRQ Signal ist.

Dumm nur, daß das der AVR anders sieht.

>Wichtig ist lediglich, dass ein Flanken IRQ als Event im IRQ Controller
>gespeichert und dann gecleart

Jaja, gecleart, schon clear. OMG!

>werden muss, während ein Level IRQ solange
>pending bleibt

pending bleibt, soso.

> bis entweder die Ursache beseitigt oder er maskiert wird.

Wer nicht mal eine klare Sprache benutzen kann, kann auch nicht klar 
denken.
Gast #5498091
Lesenswert?

> dann geht bitte vor die Tür
Nein, hier im Forum.

> Die fallende Flanke kann sehr kurz sein und schon
> nach wenigen Dutzend ns wieder auf HIGH gehen.
> So ein IRQ benötigt einen laufenden CPU-Takt,
> um erkannt zu werden.

Dies eben lese ich aus dem Datenblatt anders heraus, da steht "one clock 
period ... Shorter pulses are not guaranteed to generate an interrupt", 
also reichen "wenige Dutzend ns" nicht - oder wie kann man das anders 
verstehen?
Gast #5498097
Lesenswert?

Falk B. schrieb:
> Ja, solche Auftritte gibt es hier, aber eher selten von mir. Da sind
> MaWin, c-hater und Konsorten eher vorn dabei.

Nö, so einen Auftritt lieferst Du jetzt gerade live ab.
Aber Du merkst das nicht. Die anderen schon.
Völlig unmöglich zuzugeben das Du auf eine allgemeine Frage eine Antwort 
gegeben hast die zwar in einem bestimmten Kontex stimmt aber eben nicht 
generell.

Aber macht nur, hat einen gewissen Unterhaltungswert.

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