Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <UTFT.h>
  2. #include <UTouch.h>
  3.  
  4.  
  5. // v případě použítí SmalFont použijte :
  6.  extern uint8_t SmallFont[];
  7.  // extern uint8_t BigFont[];
  8.  
  9. byte color_R[] = {254, 254,   0,  0,   150};
  10. byte color_G[] = {254,   0, 254,  0,   150};
  11. byte color_B[] = {254,   0,    0, 254,   0};
  12.  
  13. // samotná inicializace displeje
  14. UTFT myGLCD(ITDB32S,38,39,40,41);
  15.  
  16. // inicializace dotykového panelu na displeji /myTouch(T_CLK, T_CS, T_DIN, T_DOUT, D_IRQ)/
  17. UTouch      myTouch(52,53,50,51,2);
  18.  
  19. // proměnné pro pozici na dotykovém panelu
  20. long x, y;
  21.  
  22.  
  23.  
  24. void setup()
  25. {
  26.   // nastavení LCD
  27.   myGLCD.InitLCD();
  28.   // nastavení písma na malý font
  29.   myGLCD.setFont(SmallFont);
  30.  
  31.  // naše vlastní funkce pro vymazání
  32.  // obrazovky a nakreslení tlačítka X
  33.  // - je zapsána na konci kódu
  34.  myGLCD.clrScr();
  35.  
  36.  
  37.  // naše funkce pro vytvoření
  38.  // tlačítkek pro výber barvy
  39.  // a pro pro mazání
  40.  // - jsou deklarovány na konci kódu
  41.  CreateColorButton();
  42.  CreateDeleteButton();
  43.  
  44.   // inicializace dotykového panelu
  45.   myTouch.InitTouch();
  46.   //nastavení přesnosti dotykového panelu
  47.   myTouch.setPrecision(PREC_HI);
  48.  
  49.   // nastav barvu pro kreslení na bílou
  50.   myGLCD.setColor(255,255,255);
  51.  
  52. }
  53.  
  54.  
  55. void loop()
  56. {
  57.  
  58.   // dokud jsou data z dotykového panelu k dispozici ...
  59.  while (myTouch.dataAvailable())
  60.   {
  61.     //přečti data a ....
  62.     myTouch.read();
  63.     // .... ulož do proměných
  64.     x = myTouch.getX();
  65.     y = myTouch.getY();
  66.    
  67.     // a když není x a y menší než 0 ...
  68.     if ((x!=-1) and (y!=-1))
  69.     {
  70.        // .. a když jsme se strefili na část kde jsou tlačítka
  71.        if (x > 300)
  72.           {
  73.            if  ((y > 0) && (y < 20)) ClrDraw(); //smaž část, kde kreslíme
  74.            
  75.            //... nebo nastav vybranou barvu
  76.            if  ((y > 49) && (y < 81)) myGLCD.setColor(color_R[0],color_G[0],color_B[0]);
  77.            if  ((y > 79) && (y < 111)) myGLCD.setColor(color_R[1],color_G[1],color_B[1]);
  78.            if  ((y > 109) && (y < 141)) myGLCD.setColor(color_R[2],color_G[2],color_B[2]);
  79.            if  ((y > 139) && (y < 171)) myGLCD.setColor(color_R[3],color_G[3],color_B[3]);
  80.            if  ((y > 169) && (y < 201)) myGLCD.setColor(color_R[4],color_G[4],color_B[4]);  
  81.           }  
  82.        else
  83.       // jinak nakresli pixel na pozici
  84.       myGLCD.drawPixel (x, y);
  85.     }
  86.   }  
  87. }
  88.  
  89. // funkce pro vytvoření tlačítka pro mazání  
  90.   void CreateDeleteButton()
  91.   {
  92.   // barva pro tlačítko
  93.   myGLCD.setColor(255,255,255);
  94.   // kresli tlačítko
  95.   myGLCD.fillRect(300,0,319,20);
  96.   // barva pro pozadí písma
  97.   myGLCD.setBackColor(255,255,255);
  98.   // barva pro písmo
  99.   myGLCD.setColor(0,0,0);
  100.   // napiš písmeno X na pozici
  101.   myGLCD.print("X", 308, 5);  
  102.   }
  103.  
  104.   // funkce pro vytvoření tlačítek pro výber barev
  105.   void CreateColorButton()
  106.   {
  107.   int y = 50;
  108.   int color = 0;
  109.  
  110.   while (color < 5)
  111.    {  
  112.     // barva pro tlačítko
  113.   myGLCD.setColor(color_R[color],color_G[color],color_B[color]);
  114.   // kresli tlačítko
  115.   myGLCD.fillRect(300,y,319,y +29);
  116.   color ++;
  117.   y = y +29;
  118.   }
  119.   }
  120.  
  121.   // funkce pro smazání plochy na kterou kreslíme
  122.   void ClrDraw()
  123.   {
  124.   // ulož do proměnné poslední vybranou barvu
  125.   word lastColor = myGLCD.getColor();
  126.  
  127.   // nastav černou barvu
  128.   myGLCD.setColor(0,0,0);
  129.   // kresli černý obdelnik
  130.   myGLCD.fillRect(0,0,299,239);
  131.  
  132.   // nastav zpět vybranou barvu
  133.   myGLCD.setColor(lastColor);
  134.    
  135.   }