natürlich nicht, aber dafür braucht man noch lange kein Multitasking.
wie gesagt...
zeitkritische Sachen in Interrupts (und in den Interruptroutinen wirklich nur das notwendigste)
und den Rest ruft man bei Bedarf mit einer Art "ultra-primitiv-Taskmanager" auf.
Angenommen man kriegt über den ADC irgendein Signal das man zunächst mal filtern möchte um es dann irgendwie weiter zu verarbeiten.
Dann schreibt man in der ADC-Interruptroutine nur den gemessenen Wert irgendwo hin, und setzt dann ein Flag das signalisiert, daß ein neuer Wert da ist.
Im Hauptprogramm steht dann im Extremfall nurnoch eine Endlosschleife, in der die verschiedenen Funktionen aufgerufen werden.
(FlagXY gesetzt? -> Flag löschen und Funktion XY aufrufen)
In diesem Beispiel wäre dann halt das Flag das wir uns vorher für den ADC definiert haben gesetzt,
also würde bei der entsprechenden IF-Anweisung zunächst mal das Flag wieder gelöscht, und dann die Funktion aufgerufen die das Filter implementiert.
Ich behaupte mal, daß dieses Verfahren für die meisten Anwendungen absolut ausreichend ist. (und teilweise besser geeignet als echtes Multitasking)
Lesezeichen