SIGNAL vs. INTERRUPT

INTERRUPT läßt sofort alle Interrupts wieder zu. Man hat also keinerlei
Kontrolle welche Interrupts und wie oft sich diese schachteln und ob es
überhaupt jemals zur Abarbeitung aller Anforderungen kommt.

In meinen Augen ist sowas höchst gefährlich und daher unbedingt zu
vermeiden.

Wenn überhaupt, dann nur SIGNAL nehmen, zuerst alle nicht priorisierten
Interrupts sperren und dann mit "sei();" global wieder freigeben.
Am Ende muß man natürlich alles wieder zurückwursteln.


Peter
Ich denke mal, die INTERRUPTs mit sofortiger Freigabe kommen von solchen
Architekturen, die Software-Interrupts verwenden. Denn das sind ja gar
keine echten Interrupts, sondern nur Unterprogrammaufrufe und da kann
man natürlich die echten Hardwareinterrupts wieder zulassen.

Aber wie gesagt, beim AVR gibts das ja nicht und da sind dann solche
INTERRUPTs völlig nutzlos, weil kreuzgefährlich.


Und beim 8051 gibts das erst garnicht, weil das dort die CPU intern
macht. Man kann dort nur vorher per Prioritätslevel festlegen, welcher
Interrupt welchen anderen unterbrechen darf. Und dann gehts auch nur
soweit, wie verschieden Prioritäten vergeben wurden. Sich selbst kann
ein Interrupt in keinem Fall unterbrechen.


Peter
Gast
Hi

wenn man weiß was man tut kann INTERRUPT durchaus nützlich sein. Ich
verwende das z.B. um eine 4-Kanal-PWM halbwegs Jitterfrei hinzubekommen
obwohl nebenher noch ein zweiter Timer-INT kommt dessen Ausführung
etwas länger dauert. So generell kann man also nicht sagen das
INTERRUPT() kreuzgefährlich und nutzlos ist. Man muß eben wissen was
man tut. Wenn man das nicht so genau weiß -> SIGNAL()

Matthias

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.