Christoph wrote:
>
> eine frage hab ich noch das source will ich von der seriellen
> Schnittstelle emfpangen ich hab da einen Befehl wo ich Bytweise etwas
> von der seriellen Schnittstelle empfangen habe aber wie übergib ich das
> Byte an ein Array??
Die Frage zieht einen weiten Kreis.
Die Frage ist nämlich, woher weist du eigentlich, dass dein
String jetzt zu Ende ist? Mit anderen Worten: Wenn du
ein Zeichen empfängst, gehört das noch zum String oder
nicht oder fängt vielleicht schon der nächste String an.
Du musst dir also mit dir selbst ausmachen, wie du Strings
beendest. Gebräuchlich ist zb. die Verwendung von 'Return'
(also der Enter-Taste) zur Kennzeichnung des Strings. Man
spricht in diesem Fall dann vom zeilenweisen Einlesen, da
der String dann eine komplette 'Eingabezeile' enthält. Wobei
'Zeile' relativ willkürlich definiert ist: von einem Return
bis zum nächsten.
Wenn du also ein Byte empfängst:
dann testest du das Byte zuallererst mal darauf ob das ein
'Return' ist. Wenn nein, dann handelt es sich um ein Byte
das noch zum String gehört und du hängst es an den String
an. Basic hat normalerweise schöne Funktionen dafür. Meist
heissen die Append oder so, manchmal kann man einfach mit +
ein Zeichen an den String anhängen.
War das Zeichen aber ein 'Return', dann ist der String soweit
fertig und kann ausgewertet werden.
>
> Ein byte wird von der seriellen Schnittstelle gelesen. Im Gegensatz zu
> Serial_Read(), kehrt die Funktion auch dann sofort zurück, wenn kein
> Zeichen in der seriellen Schnittstelle ist. In diesem Fall wird der Wert
> 256 (0x100) zurückgegeben.
Aha. Das heist du hast noch einen Sonderfall. Diese Read Funktion
wartet nicht, sondern teilt dir mit, dass nichts vorliegt. Also
ein if mehr.