|
Sven Schulz schrieb:
>
> innerhalb von Mikrokontrollern habe ich die Chanche innerhalb
> von sehr kurzer Zeit sehr viel abarbeiten zu lassen. Kommen
> noch,jenseits des Pollings,geschachtelte Interrups dazu, begreift
> das Ganze letztendlich nur noch derjenige der das Konzept des
> dahinterstehenden Programmcodes erstellt hat. Oft ist der
> Konzeptersteller und der Programmierer ein und dieselbe Person.
>
Aufruf-Verbindungslinien zwischen Interruptroutinen und normalem Programm
gibt es nicht, der Datenaustausch erfolgt über den Speicher, idealerweise
übergeben alle Routinen und das Hauptprogramm ihre Daten auch nur an
*einer* Stelle innerhalb ihres Ablaufs. Klassisch ist das eine
Event-Hauptschleife, die in einem FIFO ihren nächsten Auftrag abholt. Die
Eingabe-Interruptroutinen füllen den FIFO der Hauptschleife mit
Eingabedaten auf. Wenn man auch Aufgabe-Interruptroutinen hat, bekommen
dieses ebenfalls jeweils einen FIFO, in dem die Hauptschleife Daten zum
Raussenden ablegen kann -- dann kann die Hauptschleife in der Zeit mit was
anderem weitermachen.
Wenn man es richtig macht, hat man keinen Spaghetticode, der einander wild
mit unterschiedlicher Intention aufruft. Wenn man es anders macht, hat man
nicht nur ein Problem mit der Visualisierung, sondern meist auch mit der
Programmfunktion (daraus wächst dann der Wunsch nach Visualisierung des
Geraffels).
Mit freundlichem Gruß
Jan
|