Was Du suchst ist ein Scheduler. Im einfachsten Fall ist es eine einfach verkette Liste mit Funktionspointern. Man kann es aber ein wenig komplizierter machen, wenn man zwei Task quasi parallel laufen lassen möchte. Da muss man PC, SP und die Register wieder passend setzten...
Naja, eine Statemachine ist eigentlich für was anderes gedacht und seine Aufgaben auf verschiedene Interrupts zu verteile ist auch nicht das wahre. Die Interrupt-Routinen lieber klein halten und in der Run-Loop den unkritischen Rest abarbeiten.
Ich habe mal einen einfachen Scheduler als Anhang mit drangehängt. Der Code ist leider nicht viel dokumentiert, sondern war einfach mal zum testen geschrieben worden. Eventuell ist der komplette Code nicht ganz fehlerfrei, weil ich nicht mehr weiß was ich zum Schluss damit gemacht habe. Interessant ist "list" und "main". Das ganze ist übrigens in diesem Fall so ausgelegt, dass es immer ein Element in der Liste gibt.
Lesezeichen