hmm, also meine erste Idee wäre nun zu versuchen die ISR zum Hauptprogarmm (ohne GOSUB aufruf) umzubauen und daraus dann die zwei jeweiligen GoSubs anzuspringen.
Sonst kann man natürlich auch aus der ISR eine neue GoSub anspringen, allerdings muss man da wieder per Return raus, und landet dann wieder in der ISR... man kann hier jetzt über ein (Globales-)Flag prüfen ob das relevante Ereigniss schon passiert ist, wenn ja => return ins Hauptprogramm.
Ich denke das sagt auch der Text "der klassischen Timeout-Sicherung" aus.
Ich habe etwas ähnliches mit einer RC-Fernsteuerung gemacht, allerdings bricht das Programm bisher niemals ab (z.B. kein counter, kein Timer), sondern wartet auf einen richtigen Wert von der Fernsteuerung, sind drei do-loop Schleifen in einer SUB verpackt, die nacheinander durchgeprüft werden. Ist Wert gegeben geht's mit "exit do" ais der Schleife raus, in die nächste Schleife usw... nach dem letzten loop, wird das Flag gestzt, dann der Return.
Ob Dir das nun hilft kann ich nicht beurteilen.
EDIT: Wir reden ja die ganze Zeit von GOSUB...bei einer Sub oder Funktion benötigt man das Return nicht. Wäre das dann nicht besser für Dich geeignet?
Lesezeichen