hier meine Überlegungen zur "Kombination" (siehe Anhang): Ich habe Deinen, von Dir vorgegebenen Code (V120.zip), ein wenig gemorpht bis er auch mit der Lib 2.8.0 (plus mein patch3) läuft. Du müßtest Deinen (alten) STM-Code darin gut wiedererkennen, oder?
Das Schöne: Jetzt kommt er sogar ohne STM aus. Die (notwendige) Kooperation zwischen den "Prozessen" findet jetzt mittels wait(..) statt. (Stichwort: subsumption)
All Deine Prozesse: PROZESS_Nav_i(), PROZESS_StatusLEDBearbeiten(), etc. und main() benutzen jetzt wait(..). wait(..) wirkt wie MSleep(..), "vergeudet" aber seine Zeit nicht einfach damit zu warten. Sondern übergibt (in der Zwischenzeit) die Kontrolle an Prozesse mit höherer Priorität! Dazu werden Deine Prozesse, ganz zu Beginn, mittels subsumptionInit(..) an wait(..) übergeben.
Damit das extreme HW_MOTOR_DIFF Deines ASURO keine Rolle spielt, habe ich den Code noch um eine PID-Regelung der Motoren erweitert (siehe PROZESS_MotorRegeln).
Lesezeichen