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
Schau Dir mal die Befehle SEI und CLI an. Damit kannst Du steuern, wann Interrupts zulässig sind. Gruß, Frank
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
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."
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.