Newsgroup: it.hobby.elettronica.digitale
Titolo: LCD T6963

Ciao A tutti
Ma qualcuno è riuscito a far funzionare gli LCD
con controller t6963 esattamante come dicono nei datasheets?
Cioe:
Text Set     0x00 0x00
Text Area    0x00 0x16 ( il  mio...)
Graphic Set  0x00 0x00
Graphic Area 0x00 0x16
Disp mode 0x80
MOde set  0x97
attivo 0xB0 (autowrite)
invio una stringa...
e non c'è volta che la vedo sullo
stesso posto...
e poi è tutto pieno di caratteri strani...
Help !!!
Ciao
Grazie
ALX PD

 ha scritto nel messaggio
news:xECNf.12155$ou2...@tornado.fastwebnet.it...

..ricerca qualche info in più su internet!!!..
..o meglio ggggggooogla!!
;oP

 ha scritto nel messaggio
news:4NINf.12881$ou2...@tornado.fastwebnet.it...


 ha scritto nel messaggio 
news:xECNf.12155$ou2...@tornado.fastwebnet.it...


Ti ringrazio
ma di routines gia fatte ne ho gia trovate
e probabilmente funzionanti
Il punto e che non capisco come
gestire le aree di memoria
e se la cosa dipende dalla dimensine dell LCD
Per esempio
il mio LCD è 128x128
se metto
inizio del testo a 0x0000
come devo impostare
la dimensione dell area?
Poi
la parte grafica
quanto grande deve essere e da dove perte?
Di prove ne ho fatte molte
ma vedo sempre il testo
"sporcato" da vari punti grafici
e in zone ogni volta diverse ad ogni accensione
Io credo di di non aver capito la logica
della disposizione della memoria
Ciao
Grazie Cmq
Alx PD
"N@dir" <s.na...@SPAMlibero.it> ha scritto nel messaggio
news:44085d87$0$36934$4faf...@reader3.news.tin.it...


Guarda la mia inizializzazione commentata, nota che lcd_wait(3) aspetta che 
il display sia pronto...
void lcd_init(void){
 //Inizializzo porte
 LCD_WR_TRIS=0;
.....
//RESET (questo punto se non effettuato BENE MI CREAVA PARECCHI PROBLEMI)
LCD_RST=0;
LCD_CE=1;
LCD_WR=1;
LCD_RD=1;
LCD_DATA_BUS=0x00;
DelayMs(200);
LCD_RST=1;
//SET GRAPHIC
DelayUs(50);lcd_wait(3);lcd_wrcomm(0x80);    /* Display Mode Set Graphic */
DelayUs(50);lcd_wait(3);cd_wrdato(0x00);       //Indirizzo iniziale: io ho 
scelto 0x0000 ma puoi sceglierlo a tuo piacimento
DelayUs(50);lcd_wait(3);lcd_wrdato(0x00);
DelayUs(50);lcd_wait(3);lcd_wrcomm(0x42);   /* Graphic Home Addr */
DelayUs(50);lcd_wait(3);lcd_wrdato(0x1e);     // xmax / 8 -> infatti io ho 
240 pixel/8=30, ogni riga occupa 30byte (0x001e)
DelayUs(50);lcd_wait(3);lcd_wrdato(0x00);
DelayUs(50);lcd_wait(3);lcd_wrcomm(0x43);   /* Graphic Area Set */
// per il testo è identico soo che usi i comandi 40 e 41
//Tipo di scttura (AND e scegli se usare solo grafica etc...)
DelayUs(50);lcd_wait(3);lcd_wrcomm(0x80);   /* Display Mode Set Graphic */
DelayUs(50);lcd_wait(3);lcd_wrcomm(0x9c);   /* Display Mode Set Graphic */
DelayUs(50);
lcd_clr();
....
} 


Si nota che ho ancora molti dubbi?
Grazie ancora per l'aiuto !
Ciao

 ha scritto nel messaggio 
news:qdFOf.19430$PR2.3...@twister2.libero.it...


Cut
Chi la dura la vince...
Alla fine il display ha ceduto !
Il punto era che non usavo il puntatore all indirizzo ...
e non avevo capito che l'auto write ogni tanto va disabilitato...
Ora ho sperimentato con successo le spiegazioni e mi ritrovo
come dovrebbe essere testo, grafica e misto
Ho fatto un macello di routines ma ora si tratta solo di
organizzare meglio la cosa...
Era da molto che volevo usare questo LCD
Grazie ancora...
( ho anche un LCD con controller HD61830A00 quindi... a presto !)
Alx PD

 ha scritto nel messaggio 
news:6g2Pf.22149$A83.6...@twister1.libero.it...


Ciao
a tutti
e specialmente a chi si è gia cimentato con
l' LCD con controller T6963
(il mio fa 128 x 64)
Avrei un dubbio ...
Ma se volessi scrivere solamente una piccola zona
di pixel ( in grafica) con dei byte già in memoria
posso andare a scrivere direttamente al punto interessato o devo scrivere
tutto il display lasciando in bianco le parti che non servono?
ALX