Apro un nuovo topic per trattare un argomento che potrebbe interessare anche altri.
Ossia: come si usa un LCD compatibile Hitachi HD44780?
Non mi prendete per scemo, la domanda ha una sua giustificazione XD
Se collego l'LCD come si deve (quindi tralasciamo errori di connessione, funziona tutto) e spedisco del testo questo si vede e viene visualizzato anche nella posizione che dico io. Ma se voglio spedire del testo in un secondo tempo, come fare?
Tutte le volte che spedisco un testo, lo vedo, ma se spedisco 2 testi, non vedo nulla, sembra quasi che l'LCD faccia un clear
Mi date per favore la sequenza che usate voi per, diciamo, aggiungere del testo ad un'immagine già visualizzata?
Ad esempio, la prima volta spedisco "CIAO" in posizione 0,0; se poi volessi spedire "PREMI IL TASTO 1" su 0,1 (quindi sulla 2a riga)?
Io farei:
lcd.clear();
lcd.setCursor(0,0);
lcd.print("CIAO");
(.....)
lcd.setCursor(0,1);
lcd.print("PREMI IL TASTO 1");
lcd.begin(X,Y) lo eseguo solo 1 volta, all'interno di setup().
giusto?
Ti spiace se amplio la domanda?
Immaginiamo di voler anche scrivere "contemporaneamente" su entrambe le righe del display, ma come se fossero divise ognuna in tre settori, tipo:
Non voglio "rubare" il Topic a Leo , se qualcuno che ne sa tanto ha risposta anche per me mi farebbe piacere, altrimenti ignorate questo post e date risposta solo a Leo. A me basterebbe anche che mi diciate che CERTAMENTE non si può fare e cambio direzione di idea.
Si... lo so che occupa di più ma fai molto prima...
credo sia intrinseco della libreria che quando vai a riscrivere in una posizione della riga cancelli il resto che già è presente...
Ma anch'io riposiziono il cursore... solo che sparisce tutto...
boh... riguarderò un po'... cmq mi confermate che il codice che ho postato è giusto, vero?
Riproverò. Cmq considera che i tempi ci sono: i comandi li spedisco dal 328 via I2C, li leggo dal tiny84 e poi li eseguo, quindi quei 50 ms sono di "proforma". Proverò a mettere 100ms.
Uso il micro a 1 MHz, potrebbe dipendere anche da una risposta "lenta" del micro? Tu a quanto hai il Tiny?
Sì, il Tiny fa le veci della GPU
In questo modo salvo pin preziosi dell'Atmega e posso permettermi il lusso di metterlo in standby fisso quando non mi serve.
Proverò anche a metterlo a 8 MHz, l'avevo lasciato ad 1 per risparmiare corrente.
ci avrei scommesso che parlavi dell'84 e non del 328 ho chiesto per sicurezza.
se non ne vieni fuori, dai un occhiata anche alla libreria di Peter Fleury per gli LCD, (ottima come tutte le altre). http://homepage.hispeed.ch/peterfleury/avr-software.html