Gast
#1840627
Hallo.
Ich habe folgende Situation: Innerhalb einer Interrupt-Routine werden
verschiedene Dinge getestet. Liegt ein Fehler vor möchte ich eine
Funtkion error_function () aufrufen und dann die Interrupt-Routine
vorzeitig verlassen.
ISR (UART_RX_vect) {
if (Bedingung1) {
error_function ();
HIER INTERRUPT VERLASSEN
}
// ...
if (Bedingung2) {
error_function ();
HIER INTERRUPT VERLASSEN
}
// ...
}
Bei einer normalen Funktion könnte man einfach return verwenden. Für
Interrupts gäbe es ja reti(), doch dann würde der von AVR GCC generierte
Epilog (SREG und Register wiederherstellen) nicht aufgerufen werden...
Gibt es eine Möglichkeit aus der Routine heraus direkt den Epilog
aufzurufen? Oder habt ihr andere Lösungsvorschläge?
Vielen Dank für eure Hilfe!
Oliver