Hallo Rolf,
Zitat von for_ro
nein nein.Dein im Kreis laufendes Unterprogramm ist doch nicht die Timer0 ISR, oder?
Ich hab eine Hauptschleife die mehrere Unterprogramme nacheinander anspringt.
Diese UP sind es die ev. nicht zurückkommen weil sie auf eine Eingabe der in ihnen abgefragten Soft-ser warten.
Ich finde keinen Weg um hier Zeichenpuffer einzurichten.
Darum muss ich einfach warten bis Zeichen kommen.
Und das kann halt dauern.
Drum hab ich mir den Zähler in der IS-Rutine eingerichtet.
Wenn der erreicht wird soll das UP einfach abgebrochen, und das Hauptprogramm von Vorne begonnen werden.
Hier kann ich dann entscheiden welches UP als nächstes bedient wird.
Eben, daum gehts.Die wird ja unabhängig vom Restprogramm regelmäßig aufgerufen.
Per 'Goto' rausspringen geht gar nicht, du musst über ein 'Return' drüber.
Es müsste aber auch gehen das man einfach die Rücksprungadresse verbiegt und dann am Programmanfang landet.
Das würde reichen wenn die anderen Var unangetastet blieben.
Die Abfrage geht ja erst wenn ich aus dem wartendem UP raus bin.Du kannst anstatt des Sprungbefehls ein Flag setzen, z.B.
Goto_Anfang_flag=1
und dann im Hauptprogramm dieses abfragen und entsprechend springen. Dazu musst du aber regelmäßig über diese Abfrage kommen.
Zeig doch mal mehr von deinem Programm.
Und das geht nicht weil die Returnadresse mich immer wieder dahin zurückbefördert.
Im UP lauter Abfragen einzurichten ist halt sehr aufwendig.
Das wär alles kein Problem wenn ein Zeichenpuffer machbar wäre.
Sowohl bei OPEN "COMBx, xx
als auch bei SERIN xxx
hab ich keinen Weg gefunden das einzurichten.
Dann wärs einfach mit einer Abfrage des Puffers festzulegen ob das UP überhaupt angesprungen wird oder nicht.
Kurt
Lesezeichen