Non è un problema. LCD è tonto, non và a capo da solo.
Devi essere tu che tagli le righe in base alla lunghezza del tuo LCD e gli dici di scriverle sulla seconda riga.
PaoloP:
Non è un problema. LCD è tonto, non và a capo da solo.
Diciamo che in realtà dipende dalla geometria del display, quando invii una serie di caratteri questi vengono posti, in ordine di arrivo, nella ram interna del controller, 80 byte, a partire dalla posizione in cui si trova il relativo puntatore.
La "fregatura" sta nel fatto che le righe del display non seguono 1:1 le celle di memoria, sono organizzate per banchi di memoria, tipicamente di 16-20 byte, tra loro alternati, una disposizione classica è che la riga 1 va da 0 a 15 (o 19) mentre la riga 2 va da 40 a 56 (o 59), ovvero la prima riga è posta nella prima metà della ram mentre la seconda è posta nella metà successiva.
La cosa è facilmente verificabile su un display 20x4 dove scrivendo in continuazione, senza mai fare un clear o modificare il valore del puntatore alla ram, prima si riempie la prima riga, poi la terza, quindi la seconda e infine la quarta, questa è una delle possibili ripartizioni della ram, la più diffusa.