www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupts


Autor: Udo Zaydowicz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe da ein Verständnisfrage bezüglich Interrupts bei einem 2313,
die ich (mir) anhand der Dokumentation nicht beantworten kann:

Wird während der Ausführung einer Interrupt-Routine das
Interrupt-System automatisch komplett abgeschaltet, sodass nach
Beendigung der Routine keinerlei Interrupts mehr abzuarbeiten sind?

Falls nein, kann man es während einer Interrupt-Routine entsprechend
ausschalten bzw. wenigstens die Abarbeitung der während der Zeit
aufgelaufenen Interrupts verhindern?

Konkret geht es darum, das die beiden Eingänge INT0 und INT1 genutzt
werden, um bei einer steigenden Flanke am Eingang Relais ein- bzw.
auszuschalten. In der INT0-Routine wird Relais 1 ein und Relais 2
ausgeschaltet, in der INT1-Routine umgekehrt.
Nun kann es beim Ausschalten des Relais zum Prellen kommen, wodurch
natürlich wieder ein Interrupt ausgelöst werden würde.

MfG
Udo

Autor: Frank Linde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal die Befehle SEI und CLI an. Damit kannst Du steuern, wann
Interrupts zulässig sind.

Gruß, Frank

Autor: Udo Zaydowicz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Frank,

ich dachte bislang, dass die beiden sowieso implizit am Anfang und am
Ende einer Interrupt-Routine aufgerufen werden.

Mein Problem ist, dass ich nicht weiß, ob sich der µC trotzdem während
der Interrupt-Routine 'entstandene' Interrupts irgendwo merkt und
diese dann nach dem Ablauf der Interrupt-Routine ausführt.


MfG
Udo

Autor: Jens Renner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Datenblatt sagt dazu:
"If one or more interruppt conditions occur when the Global Interrupt
Enable is cleared (zero), the corresponding interrupt flag(s) will be
set and remembered until the Global Interrupt Enable bit is set (one),
and will be executed by order of priority."

Autor: Udo Zaydowicz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Jens,

Irgendwie muss ich das überlesen haben :-(
Also muss ich in der Interrupt-Routine dafür sorgen, dass die
entsprechenden Flags gelöscht werden.

Danke!

MfG
Udo

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.