Hast du da UART-Code recycled? Warum sendest du dem Display nach dem
print ein CR/LF ("Byte 10"/"Byte 13")? Ein LCD-Controller druckt
stattdessen nur zwei Sonderzeichen (sind das vielleicht die Zeichen
nach dem "Test"? BTW: In deinem Beispielcode gibt es auch keinen
String "Test", woher soll der kommen?). Ich kenne jetzt die von dir
verwendeten LCD-Routinen nicht, aber üblicherweise läuft es doch bei
allen LCD-Libs nach dem gleichen Schema ab (Achtung, Pseudo-Code!):
lcd_init();
lcd_clear();
lcd_print("Test 1");
tu_was();
lcd_gotoxy(1,1); // Nur Cursor zurücksetzen, Display wird dabei
nicht gelöscht
lcd_print("Test 2"); // "Test 2" überschreibt "Test 1"
Das Display muss gelöscht werden, um die Balken von der Initialisierung
wegzubekommen. Dann kann man einen eigenen Text hinschreiben. Der
interne Cursor des Displays steht danach am Ende deines Textes. Machst
du dann nochmal "print", so schreibst du genau an dieser Stelle
weiter, und die Anzeige "läuft durch". Du musst also vor Ausgabe
eines neuen Textes entweder das Display erneut komplett löschen, oder
zumindest den Display-Cursor auf die gewünschte Stelle setzen.
PS: Habe mir gerade das Tutorial angesehen. Es gibt zumindest
lcd_clear. Diese Routine müsstest du dann aufrufen, bevor du was neues
schreibst. Später kannst du ja mal selbst ein "lcd_gotoxy" schreiben,
der Ansatz ist ja im Tutorial erklärt.