Go Down

Topic: LCD 20x4 scrive a righe alterne (Read 1 time) previous topic - next topic

leo72

Il link ad 8 bit io so che serve solo a dimezzare la velocità di trasmissione. Questa cosa che risolva il problema della scrittura a righe alterne non la sapevo.

Comunque resta un problema non problema, secondo me. Io so che la riga è lunga X caratteri, non mando una stringa più lunga di X caratteri  :D

Michele Menniti


Il link ad 8 bit io so che serve solo a dimezzare la velocità di trasmissione. Questa cosa che risolva il problema della scrittura a righe alterne non la sapevo.

non c'è scritto che lo risolve, ma usano la frase "DEVE essere gestito a 8 bit", quindi ho dedotto, più che altro sperato, che potesse essere una possibilità.
Quote

Comunque resta un problema non problema, secondo me. Io so che la riga è lunga X caratteri, non mando una stringa più lunga di X caratteri  :D

Ma io ho (poi ho fatto modifiche estreme, ma restiamo sul problema iniziale) un menu con sei righe, e non c'è verso di farglielo vedere come sei stringhe, ho provato anche a spegnere la seriale dopo ogni riga, ma niente, ricomincia da dove ha lasciato, quindi se non risolvo con questi due ultimi accorgimenti mi devo rassegnare ai "caratteri speciali" e tante righe di programmazione :smiley-eek-blue:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

Te l'ho spiegato, un LCD non lavora come un editor di testo.
Devi usare il cursore: devi posizionare sempre il cursore nel punto in cui vuoi andare poi a far apparire il tuo testo, fosse anche la riga successiva.

lcd.Cursor(x,y);
lcd.Print(stringa);
lcd.Cursor(x,y);
lcd.Print(stringa);
ecc...

Considera che la posizione del cursore viene aggiornata in automatico per cui anche se scrivi un solo carattere, il cursore viene spostato. E' invisibile ma c'è: se lo rendi visibile, vedrai che va sempre a posizionarsi alla fine di quello che viene spedito in stampa. A meno che, ovviamente, che tu non lo sposti fisicamente da un'altra parte.

Michele Menniti

Sì ma il fatto è che la stringa arriva dall'altro micro, mentre il cursore lo posso impostare solo in locale, ecco perché ho fatto ricorso ai caratteri "speciali", così in base al carattere gli dò la posizione; solo che con "§" non mi funzionava, poi sono dovuto rientrare a casa  :(, mentre con ^ sono riuscito a pilotare il "clear"
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

0x00
0x01
0x02
...
usa i primi valori di un byte come comandi.

Go Up