aus nem Interrupt, der in nem beliebigen Teil des Codes ausgelöst wird
zu einer bestimmte Stelle ausspringen macht wenig Sinn und ist mE
ziemlich schlechter Stil.
Wie geschrieben, Stack overflow und ganz unliebsame Nebeneffekte können
da die Folge von sein. Nein, das macht man nicht, auch wenns prinzipiell
möglich ist.
Eine Erklärung zum Interupt:
Ein Interrupt wird für gewöhnlich von einer HArdwarekomponente des
µC ausgelöst. TWI, UART, INT0, INT1, SPI, Timer0, Timer1, Timer2 etc.
Der Controller macht dann folgendes. Er springt aus dem laufenden
Programmteil raus (vorausgesetzt er ist nicht gerade in einer
Interruptroutine), merkt sich wo er war, schaut welches Unterprogramm
bei genau diesem Interrupt ausgeführt werden soll, springt dann genau
da hin, arbeitet das Unterprogramm ab, löscht den jeweiligen Flag,
schaut wo er zuletzt tätig war im Hauptprogramm, springt aus der
Interrupt Routine raus an die ursprüngliche Programmstelle zurück
und werkelt dann fröhlich weiter bis zum nächsten Interrupt.
Lesezeichen