Forum: Mikrocontroller und Digitale Elektronik Low-Level-IRQ und IRQ durch fallende Flanke. Was ist der Unterschied


von Hans I. (obiwahn)


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 ?

von Falk B. (falk)


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.

von S. Landolt (Gast)


Lesenswert?

> ... fallende Flanke... So ein IRQ benötigt einen laufenden CPU-Takt, um erkannt 
zu werden.

Weshalb wacht dann z.B. ein ATmega328 damit aus Power-down auf?

von MWS (Gast)


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.
von (prx) A. K. (prx)


Lesenswert?

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

von c-hater (Gast)


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?

von c-hater (Gast)


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...

von (prx) A. K. (prx)


Lesenswert?

c-hater schrieb:
> Witzig. Tatsächlich ist das sogar der einzige zuverlässige Weg. Benötigt
> aber natürlich ggf. externe Logik...

Yep. Das war ein Schreibfehler.

von Hans I. (obiwahn)


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.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

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.

: Bearbeitet durch User
von S. Landolt (Gast)


Lesenswert?

Ich wollte nur auf den Fehler von Falk Brunner hinweisen.

von Falk B. (falk)


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.

von S. Landolt (Gast)


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.

von Falk B. (falk)


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".

von Michael K. (Gast)


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.

von Falk B. (falk)


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!

von Michael K. (Gast)


Lesenswert?

In Deiner Wahrnehmung mag das so sein.

von S. Landolt (Gast)


Lesenswert?

Merkwürdiger Umgangston - definitiv nicht mein Kollege.
Und eine fachliche Erwiderung kam auch nicht.

von Erik B. (erik_b976)


Lesenswert?

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

Damit kann ich auch ausm Tiefschlaf ohne Clock aufwachen.

von Michael K. (Gast)


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.

von S. Landolt (Gast)


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.

von Falk B. (falk)


Lesenswert?

@S. Landolt (Gast)

>Und eine fachliche Erwiderung kam auch nicht.

Das mit dem sinnerfassenden Lesen üben wir dann doch besser noch mal.

von Falk B. (falk)


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.

von S. Landolt (Gast)


Lesenswert?

Na, wir beide kommen, zumindest heute, nicht zusammen. Der Rest sei den 
Mitlesenden überlassen.

von Michael K. (Gast)


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.

von Falk B. (falk)


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!

von Falk B. (falk)


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.

von Erik B. (erik_b976)


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.

von Falk B. (falk)


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.

von S. Landolt (Gast)


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?

von Erik B. (erik_b976)


Lesenswert?

Falk B. schrieb:
> Wer nicht mal eine klare Sprache benutzen kann, kann auch nicht klar
> denken.

Kannst du auch noch etwas anderes ausser beleidigen?
Soll ich dir alles nochmal eindeutschen?

von Michael K. (Gast)


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.

von S. Landolt (Gast)


Lesenswert?

> Aber macht nur

Mach' ich, im Wortsinne. Heute abend krame ich meinen ältesten AVR8 
heraus und schaue, was er aus einem Impuls von sagen wir 50 ns macht.

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.