Interuppt enabled bit in interuppt service routine gesetzt?

Gast #1330706
Hallo Leute,

kann mir jemand folgende Frage beantworten?
Löscht der AVR beim Eintritt in eine Interrupt-Service-Routine sein 
Interrupt Enabled Bit selbstständig oder muss ich das machen? -> cli();
Setzt der AVR beim Verlassen der ISR sein IE-Bit dann auch wieder, oder 
muss ich das machen? -> sei();
Bisher hab ich sicherheitshalber cli und sei einfach immer 
reingeschrieben, aber gehts auch ohne?

Grüße,

Patrick
Gast #1330785
Hallo Peter,

vielen Dank für deine Antwort.

Sollte ich eine Doku und einen Simulator vorliegen haben, werde ich mich 
deren gerne bemühen, war aber grad nicht so...

Grüße,

Alfred
Gast #1331136
> Bisher hab ich sicherheitshalber cli und sei einfach immer
> reingeschrieben, aber gehts auch ohne?

Das sei am Ende kann sogar schädlich sein, da in dem Fall die Interrupts 
schon wieder freigeschaltet werden, bevor aus der ISR zurückgesprungen 
wird. Wenn sehr viele Interrupts in kurzer Zeit auftreten, kann es 
theoretisch zu einem Stack-Überlauf kommen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.