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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Hans I. (obiwahn)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
2 lesenswert
nicht 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 vom Autor gelöscht.
von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Schon mal versucht, auf einen pegelgetriggerten Interrupt mehrere 
Interrupt-Quellen zu legen?

von c-hater (Gast)


Bewertung
4 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Ich wollte nur auf den Fehler von Falk Brunner hinweisen.

von Falk B. (falk)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
In Deiner Wahrnehmung mag das so sein.

von S. Landolt (Gast)


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

von Erik B. (erik_b976)


Bewertung
-1 lesenswert
nicht lesenswert
Ihr wisst aber schon, dass es auch Latches gibt, oder?

Damit kann ich auch ausm Tiefschlaf ohne Clock aufwachen.

von Michael K. (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


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

von Michael K. (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.