#include <UTFT.h>
#include <UTouch.h>
// v případě použítí SmalFont použijte :
extern uint8_t SmallFont[];
// extern uint8_t BigFont[];
byte color_R[] = {254, 254, 0, 0, 150};
byte color_G[] = {254, 0, 254, 0, 150};
byte color_B[] = {254, 0, 0, 254, 0};
// samotná inicializace displeje
UTFT myGLCD(ITDB32S,38,39,40,41);
// inicializace dotykového panelu na displeji /myTouch(T_CLK, T_CS, T_DIN, T_DOUT, D_IRQ)/
UTouch myTouch(52,53,50,51,2);
// proměnné pro pozici na dotykovém panelu
long x, y;
void setup()
{
// nastavení LCD
myGLCD.InitLCD();
// nastavení písma na malý font
myGLCD.setFont(SmallFont);
// naše vlastní funkce pro vymazání
// obrazovky a nakreslení tlačítka X
// - je zapsána na konci kódu
myGLCD.clrScr();
// naše funkce pro vytvoření
// tlačítkek pro výber barvy
// a pro pro mazání
// - jsou deklarovány na konci kódu
CreateColorButton();
CreateDeleteButton();
// inicializace dotykového panelu
myTouch.InitTouch();
//nastavení přesnosti dotykového panelu
myTouch.setPrecision(PREC_HI);
// nastav barvu pro kreslení na bílou
myGLCD.setColor(255,255,255);
}
void loop()
{
// dokud jsou data z dotykového panelu k dispozici ...
while (myTouch.dataAvailable())
{
//přečti data a ....
myTouch.read();
// .... ulož do proměných
x = myTouch.getX();
y = myTouch.getY();
// a když není x a y menší než 0 ...
if ((x!=-1) and (y!=-1))
{
// .. a když jsme se strefili na část kde jsou tlačítka
if (x > 300)
{
if ((y > 0) && (y < 20)) ClrDraw(); //smaž část, kde kreslíme
//... nebo nastav vybranou barvu
if ((y > 49) && (y < 81)) myGLCD.setColor(color_R[0],color_G[0],color_B[0]);
if ((y > 79) && (y < 111)) myGLCD.setColor(color_R[1],color_G[1],color_B[1]);
if ((y > 109) && (y < 141)) myGLCD.setColor(color_R[2],color_G[2],color_B[2]);
if ((y > 139) && (y < 171)) myGLCD.setColor(color_R[3],color_G[3],color_B[3]);
if ((y > 169) && (y < 201)) myGLCD.setColor(color_R[4],color_G[4],color_B[4]);
}
else
// jinak nakresli pixel na pozici
myGLCD.drawPixel (x, y);
}
}
}
// funkce pro vytvoření tlačítka pro mazání
void CreateDeleteButton()
{
// barva pro tlačítko
myGLCD.setColor(255,255,255);
// kresli tlačítko
myGLCD.fillRect(300,0,319,20);
// barva pro pozadí písma
myGLCD.setBackColor(255,255,255);
// barva pro písmo
myGLCD.setColor(0,0,0);
// napiš písmeno X na pozici
myGLCD.print("X", 308, 5);
}
// funkce pro vytvoření tlačítek pro výber barev
void CreateColorButton()
{
int y = 50;
int color = 0;
while (color < 5)
{
// barva pro tlačítko
myGLCD.setColor(color_R[color],color_G[color],color_B[color]);
// kresli tlačítko
myGLCD.fillRect(300,y,319,y +29);
color ++;
y = y +29;
}
}
// funkce pro smazání plochy na kterou kreslíme
void ClrDraw()
{
// ulož do proměnné poslední vybranou barvu
word lastColor = myGLCD.getColor();
// nastav černou barvu
myGLCD.setColor(0,0,0);
// kresli černý obdelnik
myGLCD.fillRect(0,0,299,239);
// nastav zpět vybranou barvu
myGLCD.setColor(lastColor);
}