LIBRERIA per PIC:

Display TFT 1,8 inc (seriale)


 


La libreria per TFT da 1,8 pollici è stata modificata da quelle per Arduino e, alcune funzioni, modificate per risparmiare Byte e adattarla al funzionamento ai vari PIC con poca memoria.

Un utilizzo di linee, rettangoli, cerchi e scritte a diversa altezza, richiede 3500 Byte, con un disegno semplice da 24x27 pixel circa 5000 Byte.

Sono solo 4/5 pins del TFT da collegare al PIC, il terminale di RESET può essere collegato direttamente al +Vcc e risparmiare un pin del PIC.

TFT_CS ===> LATB7_bit
TFT_RS ===> LATC3_bit
TFT_SDA ==> LATB5_bit
TFT_SCL ==> LATB4_bit
TFT_RST ==> LATB6_bit //
Puo essere collegato direttamente al +Vcc e risparmiare un pin.

lcd_initial ();

La funzione principale, deve aste richiamata una sola volta dopo l'inizializzazione del PIC.

Fill_Screen (backcolor);

Pulisce il display con il colore salvato in "backcolor"

Display_ASCII5X8 (90, 12, "JUMBO elettronica", MAGENTA);

Il fonts principale da 5x8 pixel. La scritta è definita molto bene ma risulta molto piccola.

I primi due valori sono le coordinate di inizio scrittura e rappresentano gli assi X e Y rispettivamente.

I punti iniziali (0, 0) sono in basso a sinistra, nella figura in basso centrale sono visualizzati la posizione degli assi e i limiti relativi.

Display_ASCII8X16 (60, 10, "JUMBO el.", RED);

Il fonts principale da 8x16 pixel. La scritta è definita molto bene, piuttosto armoniosa e in doppia altezza. Richiede una tabella da 2400 Byte (modificata, in origine era molto più pesante).

size = 3;
Display_String_Size (0, 0, "JUMBO el.", WHITE);

La tabella richiesta è quella da 5x8 e richiede un registo da definire prima del richiamo della funzione. Il registro è "size = " seguito da un valore che parte da 1 (scritta base, piccola) a 8, 9, 10, o più.

Se selezioniamo un valore molto grande, riusciamo a visualizzare sul display solo pochi caratteri contemporaneamente.

drawLine(int x, int y, int x2, int y2, unsigned int color);

Disegna una linea che parte da un punto inixiale (x, y) a uno finale (x2, y2) colorata da "color".

drawFastHLine (unsigned int x, unsigned int y, unsigned int w,unsigned int color);

drawFastVLine (unsigned int x, unsigned int y, unsigned int h, unsigned int color);

Disegna una linea rispettivamente nel senso dell'asse X o asse Y. I punti di partenza sono x e y mentre w o h sono il numero di pixel richiesti della lunghezza della linea.

drawRect (int x, int y, int w, int h, unsigned int color);

fillRect (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned int color);

Disegna un dettangolo vuoto o pieno.

drawCircle (int x0, int y0, int r, unsigned int color);

fillCircle (int x0, int y0, int r, int color);

Disegna un cerchio vuoto o pieno. I raggio è definito da r mentre x0 e y0 sono le coordinate del centro del cerchio.

drawCircleHelper ( int x0, int y0, int r, unsigned int cornername, unsigned int color);

Disegna un tratto di cerchio. Le coordinate del centro del cerchio sono x0 e y0, r il raggio e cornername la parte del cerchio da disegnare.

0x01 = disegna tratto di cerchio inferiore Sx
0x02 = disegna tratto di cerchio superiore Sx
0x04 = disegna tratto di cerchio superiore Dx
0x08 = disegna tratto di cerchio inferiore Dx

E' possibile visualizzare più tratti di cerchi, per esempio 0x03 disegna un semicerchio verticale

fillCircleHelper (int x0, int y0, int r, unsigned char cornername, int delta, unsigned int color);

Disegna un semicerchio pieno. Le coordinate del centro del cerchio sono x0 e y0, r il raggio e cornername la parte del cerchio da disegnare.

Le coordinate del centro del cerchio sono x0 e y0, r il raggio, cornername la parte del semicerchio da disegnare:

1= disegna metà cerchio superiore pieno
2= disegna metà cerchio inferiore pieno

e delta un allungamento del semicerchio.

Draw_BMP (unsigned int x_pos1, unsigned int y_pos1, unsigned int x_pos2, unsigned int y_pos2, const unsigned int *bitmap);

ATTENZIONE: NON USARE LA FUNZIONE CON IL PIC16: OGNI BYTE DELL'IMMAGINE OCCUPA UNA WORD DEL PIC. OGNI PAGINA DI MEMORIA DEL PIC CONTIENE 2048 WORD! DIFFICILE MEMORIZZARE UN'IMMAGINE!

Per esempio, in una pagina è possibile memorizzare 1004 Word. Significa visualizzare una figura da 32x31 pixel, davvero piccola!

Stampa sul display una figura. In origine la figura è un "*.BMP" che va modificata dal programma "bitmaptoarray.exe" che trovate nella directory "BITMAP ARRAY CONVERTER" e salvata in un file e incluso nel sorgente dalla direttiva "#include".

x_pos1 e y_pos1 sono i punti di partenza della figura, x_pos2 e y_pos2 sono i punti finali. *bitmap è il nome del file che contiene il codice per visualizzare l'immagine.

Ogni Word (2 Byte) del "*bitmap" contiene il colore di un singolo pixel.

Nella libreria trovate un'immagine piccola (24x27 pixel) gestibile da un PIC16.

 


SCARICA LA LIBRERIA PER MIKROC PRO.

SCARICA IL PROGRAMMA "bitmaptoarray.exe" PER MODIFICARE IL FILE *.BMP E CARICARLO NEL PIC.

 

RITORNA ALLA MAIN PAGE