www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interruptüberlauf?


Autor: Maxim S. (maxim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was passiert, wenn der Timer überläuft und die ISR vom vorletzten 
Überlauf noch nicht abgearbeitet wurde? Wird der Interrupt verworfen 
oder geht es so weiter bis zum Stack-Overflow?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher µC?

Autor: Maxim S. (maxim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh sorry, ATMega32

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei AVRs ist während der Bearbeitung einer ISR die Bearbeitung aller 
Interrupts automatisch gesperrt (dafür sorgt die Controller-Hardware). 
Außerdem wird beim Einsprung in den Interrupt-Vektor das auslösende Flag 
gelöscht (*). Wenn eine ISR noch nicht beendet ist und derselbe 
Interrupt erneut auftritt, dann wird das Flag wieder gesetzt und nach 
der Beendigung der ISR (nach dem Rücksprung ins Hauptprogramm) wird die 
ISR erneut aufgerufen, wenn nicht in der Zwischenzeit andere Interrupts 
mit einer niedrigeren Adresse aufgelaufen sind (die dann zuerst 
abgearbeitet werden). Einen Stack-Überlauf gibt es nur dann, wenn 
innerhalb einer ISR das I-Bit im SREG manuell wieder gesetzt wird (was 
die µC-Hardware normalerweise erst mit dem reti macht). In dem Fall wird 
die ISR unterbrochen, wenn das Flag erneut gesetzt wird (oder wenn ein 
anderer Interrupt auftritt).

(*) Ausnahme: Das USART-Receive-Interrupt-Flag wird erst gelöscht, wenn 
UDR gelesen wurde und kein Zeichen mehr im Empfangspuffer ist.

Autor: Maxim S. (maxim) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.