Zitat Zitat von MDKMurdoc
... Wenn ich dich richtig verstanden habe. sendet du also nen Zeichen z.b. 1 Und wenn das immer so weitergeht bis der string einen bestimmtem Kriterium enspricht wird die entsprechende Routine aufgerufen ...
Ich sende im Extremfall "viele" Zeichen - Theoretisch ist eine ganze Litanei möglich. Wenn die Steuerzeichen-Markierung kommt - die steht am Anfang einer Steuersequenz - dann wird das erste Steuerzeichen-flag gesetzt und der folgende String in einem separaten Empfangsfeld abgelegt. Dieses Feld ist größer als die längste Steuersequenz. Wird das Steuerstring-Ende erkannt, wird das zweite Steuerzeichenflag gesetzt.

Der Steuerstring bleibt im Empfangsfeld stehen bis er von einer Routine ausgelesen wird. Nach dem Auslesen werden die Steuerzeichenflags zurückgesetzt. Damit ist gesichert, dass ein empfangener String ausgelesen wird. >>> Kommt ein neuer Steuerstring an, bevor der alte ausgelesen wird, dann wird der nicht mitgeschnitten ! ! <<< Das ist aber bei der Schnelligkeit meiner main-Routine (und deren Unterroutinen) kaum möglich.

Zitat Zitat von MDKMurdoc
... kann der µC nebenbei noch andere Sachen machen ...
Natürlich, sonst wär das Ganze ja witzlos. Ich empfange die Zeichen mit einer Interruptroutine. >>> Daher auch die Geschichte mit den Steuerflags - die u.a. auch verhindern, dass während des Lesens ein neuer Steuerstring eingeschrieben wird - oder dass nur ein Teilstring ausgewertet wird.<<< Damit umgehe ich auch das von for_ro dargestellte Problem mit 1 und 10. Übrigens hat for_ro ja auch ein Merkmal um einen vollständigen String zu erkennen. Allerdings mache ich das eben in C und for_ro beschreibt ja eine Lösung, die in Basic funktioniert und auch interruptgesteuert abläuft. Ich kann kein Bascom - hatte ich ja geschrieben.