Also zu meinem Vorhaben:
Ich nutze zur Fehlersuche bei µC oder um Testwerte anzuzeigen gerne die RS232 Schnittstelle. Deshalb möchte ein LCD 4*20 mit 5 Tastern up, down, left, right und Menue programmieren, um "mal eben" ohne PC die "Daten auszulesen" - nichts wildes - aber für mich brauchbar

Damit ich da etwas variabel bin möchte ich unteranderem die Baudrate wählen können.

Über select Case wähle ich die Baudrate und möchte diese natürlich auch als Rückmeldung im Auswahlmenü anzeigen. Da Bascom anscheined weder Baud noch $Baud ausgeben kann lese ich dies nun über die Register aus.

Als letztes möchte ich noch auswählen können, ob der Text über alle Zeilen verteilt nacheinander ausgegeben wird oder ob jeweils die erste Zeile gelöscht wird und alle anderen aufrücken. So könnte ich 4 Variablen untereinander anzeigen (ich will ja keinen Roman auf dem LCD anzeigen )

ich benutze einen MEGA8@8MHz intern

die Serielle Schnittstelle frage ich so ab:

Code:
Onrxd:

E_byte = Udr


If E_byte = 13 Then                                         '13 = CR (Enter)
E_flag = 1
Elseif E_byte = 10 Then                                     '10 LF (Linie Feed)
'tu nix
Else
Text = Text + Chr(e_byte)
End If

Return
und teile alles auf 4 Zeilen auf:
Code:
'RS232 - Empfang umwandeln
If E_flag = 1 Then                                          'Empfangsstring komplett
Print Text
Cls
Locate 1 , 1
Lcd Mid(text , 1 , 20)
Locate 2 , 1
Lcd Mid(text , 21 , 20)
Locate 3 , 1
Lcd Mid(text , 41 , 20)
Locate 4 , 1
Lcd Mid(text , 61 , 20)
Text = ""                                                   'Inhalt löschen
E_flag = 0                                                  'Empfang neu setzen

End If
Gedankengang:
Wenn die Variable Text mehr als 60 Zeichen hat(also schon in die 4.te Zeile geschrieben wird), nach der Textausgabe die ersten 20 Zeichen in der Variable Text löschen - beim nächsten Empfang wird an der Stelle weitergeschrieben - so könnte der Text Zeilenweise hoch rutschen.

ABER wenn mein LCD so aussieht:

Variable1(CR)
Variable2(CR)
Variable3(CR)
Variable4(CR)

dann sind das keine 60 Zeichen und wenn nun die Variable5 auf das LCD gesendet werden soll muss ja Variable 1 gelöscht werden

ok - ich muss nochmal darüber nachdenken -
(sorry nun hab ich hier einen Roman geschrieben.... )

Tobias