Verständnisproblem Interrupts

Gast #2605139
Hallo,
ich versuche gerade mit C und Atmega 8 über die serielle Schnittstelle 
per UART zu kommunizieren und benutze ISR(USART_RXC_vect) aus dem 
Tutorial.
Innerhalb der Interruptroutine schalte ich für 10 ms eine LED an um zu 
sehen, ob die Routine auch abgearbeitet wird, also etwas empfangen 
wurde.
Jetzt habe ich vor meiner Hauptschleife mit cli(); eigentlich alle 
Interrupts deaktiviert und trotzdem leuchtet die LED wenn ich ein 
Zeichen sende. Warum? Eigentlich sollten doch alle Interrupts gesperrt 
sein, oder?
Sei() kommt nicht vor im Code.
Ich werte zwei Sensoren aus, die von Interrupts nicht gestört werden 
dürfen, deshalb wollte ich eigentlich vor der Messung die Interrupts mit 
Cli() ausschalten und nach der Messung bzw. vor der Verarbeitung der 
Messwerte mit sei() wieder einschalten, da das nicht ging bin ich auf 
mein Problem aufmerksam geworden. Danke für alle Tipps!
Viele Grüße
Stefan

Antwort schreiben

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