-
-
Erfahrener Benutzer
Robotik Einstein
Wenn Du einen Interrupt ausführst wird automatisch das Interrupt ENABLE Flag im Status Register gelöscht und somit keine weiteren Interrupts zugelassen.
Das könnte man zwar mit "SEI" wieder ändern ist aber nicht ganz ungefährlich.
Du kannst nicht einfach aus einer Interruptroutine in einen Hauptprogrammanteil springen. Nach ein paar Interrupt Aufrufen läuft dir dein Stack über und der Controller macht nur noch Mist.
Die einzige gerade noch zu akzeptierende Möglichkeit wäre im Interrupt eine Stack Manipulation durchzuführen, die die Rücksprungadresse ändert, ob das aber mit Bascom hinzukriegen ist kann ich nicht beantworten.
Sub Routinen kann man natürlich aus Interrupts heraus aufrufen, wenn Sie sauber mit RET wieder beendet werden.
Allerdings sollte auch hier gelten im Interrupt so wenig wie nur irgendwie möglich Code ausführen zu lassen. Ausserdem sollte die Subroutinentiefe nicht zu hoch werden, weil jeder erneute nicht abgeschlossene Subroutinen Aufruf den Stack zumüllt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen