Toto je má konečná verze maturitního projektu
Dependencies: mbed mbed-rtos UTouch_vyrobek UniGraphic
Diff: display.cpp
- Revision:
- 11:4ca8388080c6
- Parent:
- 10:0176705be216
- Child:
- 12:9bc02f9e16e3
--- a/display.cpp Sun Jan 16 12:06:03 2022 +0000 +++ b/display.cpp Tue Feb 01 13:37:40 2022 +0000 @@ -1,24 +1,36 @@ #include "display.h" -#include "rtos.h" + -UTouch touch(D4,D9,D3,D2,D5);//clk,chip_select,MOSI,miso,irq -ILI9341 spi(SPI_8,320000000,PTD2,PTD3,PTD1,PTC12, PTC3, PTC2, "TFT",240,320);// mosi, miso, sclk, chip_select, reset, dc +UTouch touch(D5,D4,D3,D2,D1);//clk,chip_select,MOSI,miso,irq +ILI9341 spi(SPI_8,320000000,PTD2,PTD3,PTD1,PTE24, PTE25, PTC4, "TFT",240,320);// mosi, miso, sclk, chip_select, reset, dc DigitalOut my_green(LED2); DigitalOut my_red(LED4); DigitalOut my_blue(LED3); DigitalOut led2(LED2); Thread thread; +Thread thread_h; PwmOut br(D10); + + +PwmOut r(PTC10); +PwmOut g(PTC3); +PwmOut b(PTC2); + +float led_jas = 80; float lcd_jas = 0.50f; -int jas[] = {Green,Red}; +int jas[] = {Cyan,White}; int jas_s = 2; int jazyk_s = 0; int cas_hodiny = 0; int cas_minuty = 0; +int cas_hodiny_on = 0; +int cas_minuty_on = 0; +int cas_hodiny_off = 0; +int cas_minuty_off = 0; int cas_nastavit = 1037059200; -int time_on = 1037074920; -int time_off = 1037075100; +int time_on = 1037059200; +int time_off = 1037059200; int lang = 0; char minutka[32]; char hodinka[32]; @@ -51,17 +63,27 @@ } } - + +void send_color(float color_r = 255,float color_g = 255, float color_b = 255, float brightness = 0){ + + brightness = 100 - brightness; + + color_r = color_r * 0.00387855; //příklad 255*0,0039 se rovná 0.9945 což znamená že je to 1 barevný bod; 0.9945 vezmeme a vynásobíme 0,0039 což nám vznikne tady toto, funguje to nevim jak to funguje + color_g = color_g * 0.00387855; // example 255*0,0039 equals to 0.9945 which means that this is one color point out of 255; we take the 0.9945 and multiply it by 0,0039 which results to this, it works I dunno how + color_b = color_b * 0.00387855; + + color_r = color_r - ((color_r*0.01)*brightness); //jas vypocitame tak ze si vezmeme kolik je jedno procento vybraných barevných bodů a to vynásobíme cislem jak moc chceme omezit tento jas + color_g = color_g - ((color_g*0.01)*brightness); //we calculate the brightness by taking the choosen color points and getting how much is 1% then we just make it how much do we want to lower the brightness + color_b = color_b - ((color_b*0.01)*brightness); + write_color(color_r,color_g,color_b); + } -void led2_thread() -{ - while (true) { - led2 = !led2; - Thread::wait(1000); - } +void write_color(float red,float green, float blue){ + r.write(red); + g.write(green); + b.write(blue); } - /* v ILI9341.cpp zmeneny framerate ze 70 na 100, toto pomohlo problemu blikání displeje velikost fotky pro čudlik 180x70 @@ -69,14 +91,11 @@ 4x doprava jas pro cudliky v menu - +predelat na konci jmena cudliku */ -void grafika(unsigned short int press = 0){ - int spodni_pravy[] = {239,200,320,240,Black}; - - +void grafika(unsigned short int press = 0){ switch(press) { case 1: @@ -105,20 +124,17 @@ spi.Bitmap(274,140,46,26,(unsigned char*)gImage_spodek); break; case 3: - spi.Bitmap(0,200,80,40,(unsigned char*)gImage_spodni_levy); + spi.fillrect(0,200,106,240,Black); + spi.Bitmap(13,200,80,40,(unsigned char*)gImage_spodni_levy); break; case 4: - spi.Bitmap(80,200,80,40,(unsigned char*)gImage_stredni_levy); + spi.fillrect(107,200,213,240,Black); + spi.Bitmap(120,200,80,40,(unsigned char*)gImage_stredni_levy);//prostredni break; case 5: - spi.Bitmap(160,200,80,40,(unsigned char*)gImage_stredni_pravy); - break; - case 6: - spi.fillrect(spodni_pravy[0],spodni_pravy[1],spodni_pravy[2],spodni_pravy[3],spodni_pravy[4]); //pravy kraj spodni - break; - case 8: - spi.Bitmap(0,200,80,40,(unsigned char*)gImage_spodni_levy); - break; + spi.fillrect(214,200,320,240,Black); + spi.Bitmap(227,200,80,40,(unsigned char*)gImage_stredni_pravy);//pravy spodni + break; default: spi.Bitmap(46,0,228,200,(unsigned char*)gImage_pozadi); @@ -138,12 +154,15 @@ spi.Bitmap(0,114,46,26,(unsigned char*)gImage_spodek); spi.Bitmap(0,140,46,26,(unsigned char*)gImage_spodek); - - //spi.Bitmap(160,200,80,40,(unsigned char*)gImage_stredni_levy); - spi.Bitmap(0,200,80,40,(unsigned char*)gImage_spodni_levy); - spi.Bitmap(80,200,80,40,(unsigned char*)gImage_stredni_levy); - spi.Bitmap(160,200,80,40,(unsigned char*)gImage_stredni_pravy); //stred pravy spodni - spi.fillrect(spodni_pravy[0],spodni_pravy[1],spodni_pravy[2],spodni_pravy[3],spodni_pravy[4]); //pravy kraj spodni + spi.fillrect(0,200,106,240,Black); + spi.Bitmap(13,200,80,40,(unsigned char*)gImage_spodni_levy); + + spi.fillrect(107,200,213,240,Black); + spi.Bitmap(120,200,80,40,(unsigned char*)gImage_stredni_levy);//prostredni + + spi.fillrect(214,200,320,240,Black); + spi.Bitmap(227,200,80,40,(unsigned char*)gImage_stredni_pravy);//pravy spodni + } } @@ -183,10 +202,9 @@ int levy[] = {34,274,165,320}; //levý čudlík //int cudlik[] = {20,80,42,130,Orange}; //slider nepovedeny projekt //int stred_cudliku[] = {30,105,Blue}; //střed čudliku - int spodni_levy[] = {200,240,240,320}; // levy spodni cudlik - int stredni_levy[] = {200,160,240,239}; //stred levy spodni cudlik - int stredni_pravy[] = {200,80,240,158}; //stred pravy spodni cudlik - int spodni_pravy[] = {200,0,240,77}; // pravy spodni cudlik + int spodni_levy[] = {200,214,240,320}; // pravy spodni cudlik + int stredni_levy[] = {200,107,240,213}; //stred spodni cudlik + int stredni_pravy[] = {200,0,240,106}; //stred levy spodni cudlik int cudlik_1[] = {10,213,58,260}; int cudlik_2[] = {10,137,58,184}; @@ -232,7 +250,6 @@ hold(); grafika(1); Menu(m); - wait(0.2); } //pravý čudlik @@ -256,22 +273,23 @@ hold(); grafika(2); - wait(0.2); + Menu(m); } //levý čudlik //levý spodni čudlik if ((touch_x > spodni_levy[0]) && (touch_x < spodni_levy[2]) && (touch_y < spodni_levy[3]) && (touch_y > spodni_levy[1])){ - spi.Bitmap(0,200,80,40,(unsigned char*)gImage_spodni_levy_s); + spi.fillrect(0,200,106,240,Select); + spi.Bitmap(13,200,80,40,(unsigned char*)gImage_spodni_levy_s); hold(); grafika(9); - grafika(8); + grafika(3); grafika(7); nastaveni(); - wait(0.2); + } //levý spodni čudlik @@ -279,42 +297,29 @@ //stred levy spodni cudlik if ((touch_x > stredni_levy[0]) && (touch_x < stredni_levy[2]) && (touch_y < stredni_levy[3]) && (touch_y > stredni_levy[1])){ - - spi.Bitmap(80,200,80,40,(unsigned char*)gImage_stredni_levy_s); + spi.fillrect(107,200,213,240,Select); + spi.Bitmap(120,200,80,40,(unsigned char*)gImage_stredni_levy_s); - thread.start(led2_thread); + on_off(); hold(); grafika(4); - wait(0.2); + } //stred levy spodni cudlik //stred pravy spodni cudlik if ((touch_x > stredni_pravy[0]) && (touch_x < stredni_pravy[2]) && (touch_y < stredni_pravy[3]) && (touch_y > stredni_pravy[1])){ - spi.Bitmap(160,200,80,40,(unsigned char*)gImage_stredni_pravy_s); - - thread.terminate(); - hold(); + spi.fillrect(214,200,320,240,Select); + spi.Bitmap(227,200,80,40,(unsigned char*)gImage_stredni_pravy_s); + hold(); grafika(5); - wait(0.2); + color_picker(); + } //stred pravy spodni cudlik - - //kraj pravy spodni cudlik - if ((touch_x > spodni_pravy[0]) && (touch_x < spodni_pravy[2]) && (touch_y < spodni_pravy[3]) && (touch_y > spodni_pravy[1])){ - - hold(); - - spi.locate(255,210); - spi.printf("%s",buffer); - - // grafika(6); - wait(0.2); - } - //kraj pravy spodni cudlik //MENU CUDLIKY********************************************************************************************************************************************************************************** //prvni @@ -411,28 +416,20 @@ } void Static(){ - int red1[] = {213,76,260,124}; - int green1[] = {137,76,184,124}; - int blue1[] = {60,76,107,124}; - + + int green1[] = {109,40,212,143}; + int green[] = {40,109,143,212}; - int red[] = {76,213,124,260}; - int green[] = {76,137,124,184}; - int blue[] = {76,60,124,107}; - - + int stredni_pravy[] = {200,0,240,106}; //stred levy spodni cudlik int pravy[] = {34,0,165,46}; //pravý čudlík int levy[] = {34,274,165,320}; //levý čudlík spi.Bitmap(46,0,228,200,(unsigned char*)gImage_pozadi); - spi.fillrect(red1[0],red1[1],red1[2],red1[3],Red); - spi.fillrect(green1[0],green1[1],green1[2],green1[3],Green); - spi.fillrect(blue1[0],blue1[1],blue1[2],blue1[3],Blue); + + spi.fillrect(green1[0],green1[1],green1[2],green1[3],White); + + int color_pick = White; - - int r = 1; - int g = 1; - int b = 1; while(1) { if (touch.DataAvailable()) @@ -452,13 +449,51 @@ spi.Bitmap(274,140,46,26,(unsigned char*)gImage_spodek_s); //GRAFIKA************************************************** hold(); - my_red = r; - my_green = g; - my_blue = b; + thread.terminate(); + switch (color_pick){ + case Red: + send_color(255,0,0,led_jas); + break; + case Orange: + send_color(255,128,0,led_jas); + break; + case Yellow: + send_color(255,255,0,led_jas); + break; + case GreenYellow: + send_color(127,255,0,led_jas); + break; + case Green: + send_color(0,255,0,led_jas); + break; + case White: + send_color(255,255,255,led_jas); + break; + case Cyan: + send_color(0,255,255,led_jas); + break; + case DarkCyan: + send_color(0,127,255,led_jas); + break; + case Blue: + send_color(0,0,255,led_jas); + break; + case Purple: + send_color(127,0,255,led_jas); + break; + case Magenta: + send_color(255,0,255,led_jas); + break; + case Pink: + send_color(255,0,127,led_jas); + break; + default: + send_color(255,255,255,led_jas); +} + grafika(1); grafika(2); Menu(); - wait(0.2); } //pravý čudlik @@ -474,38 +509,153 @@ hold(); grafika(2); grafika(1); - wait(0.2); Menu(); } //levý čudlik -if((touch_x > red[0]) && (touch_x < red[2]) && (touch_y < red[3]) && (touch_y > red[1])){ - hold(); - r = !r; - printf("%d",r); - wait(0.2); -} - + //stred pravy spodni cudlik + if ((touch_x > stredni_pravy[0]) && (touch_x < stredni_pravy[2]) && (touch_y < stredni_pravy[3]) && (touch_y > stredni_pravy[1])){ + spi.fillrect(214,200,320,240,Select); + spi.Bitmap(227,200,80,40,(unsigned char*)gImage_stredni_pravy_s); + hold(); + grafika(5); + color_picker(); + + } + //stred pravy spodni cudlik + if((touch_x > green[0]) && (touch_x < green[2]) && (touch_y < green[3]) && (touch_y > green[1])){ hold(); - g = !g; - printf("%d",g); - wait(0.2); + color_pick = color_picker(); + spi.Bitmap(46,0,228,200,(unsigned char*)gImage_pozadi); + spi.fillrect(green1[0],green1[1],green1[2],green1[3],color_pick); + } - -if((touch_x > blue[0]) && (touch_x < blue[2]) && (touch_y < blue[3]) && (touch_y > blue[1])){ - hold(); - b = !b; - printf("%d",b); - wait(0.2); -} - } } } } +int color_picker(){ + + int pole1[] = {69,29,116,76}; + int pole2[] = {117,29,163,76}; + int pole3[] = {164,29,210,76}; + int pole4[] = {211,29,257,76}; + int pole5[] = {69,77,116,123}; + int pole6[] = {117,77,163,123}; + int pole7[] = {164,77,210,123}; + int pole8[] = {211,77,257,123}; + int pole9[] = {69,124,116,170}; + int pole10[] = {117,124,163,170}; + int pole11[] = {164,124,210,170}; + int pole12[] = {211,124,257,170}; + + + int pole4t[] = {29,69,76,116}; + int pole3t[] = {29,117,76,163}; + int pole2t[] = {29,164,76,210}; + int pole1t[] = {29,211,76,257}; + int pole8t[] = {77,69,123,116}; + int pole7t[] = {77,117,123,163}; + int pole6t[] = {77,164,123,210}; + int pole5t[] = {77,211,123,257}; + int pole12t[] = {124,69,170,116}; + int pole11t[] = {124,117,170,163}; + int pole10t[] = {124,164,170,210}; + int pole9t[] = {124,211,170,257}; + + spi.Bitmap(46,0,228,200,(unsigned char*)gImage_pozadi); + spi.fillrect(pole1[0],pole1[1],pole1[2],pole1[3],Red); + spi.fillrect(pole2[0],pole2[1],pole2[2],pole2[3],Orange); + spi.fillrect(pole3[0],pole3[1],pole3[2],pole3[3],Yellow); + spi.fillrect(pole4[0],pole4[1],pole4[2],pole4[3],GreenYellow); + spi.fillrect(pole5[0],pole5[1],pole5[2],pole5[3],Green); + spi.fillrect(pole6[0],pole6[1],pole6[2],pole6[3],White); + spi.fillrect(pole7[0],pole7[1],pole7[2],pole7[3],Cyan); + spi.fillrect(pole8[0],pole8[1],pole8[2],pole8[3],DarkCyan); + spi.fillrect(pole9[0],pole9[1],pole9[2],pole9[3],Blue); + spi.fillrect(pole10[0],pole10[1],pole10[2],pole10[3],Purple); + spi.fillrect(pole11[0],pole11[1],pole11[2],pole11[3],Magenta); + spi.fillrect(pole12[0],pole12[1],pole12[2],pole12[3],Pink); + + + while(1) + { + if (touch.DataAvailable()) + { + if(touch.Read()) + { + unsigned short int touch_y = touch.GetX(); // 0-320 + unsigned short int touch_x = touch.GetY(); // 0-240 + +if((touch_x > pole1t[0]) && (touch_x < pole1t[2]) && (touch_y < pole1t[3]) && (touch_y > pole1t[1])){ + hold(); + return Red; +} + +if((touch_x > pole2t[0]) && (touch_x < pole2t[2]) && (touch_y < pole2t[3]) && (touch_y > pole2t[1])){ + hold(); + return Orange; +} + +if((touch_x > pole3t[0]) && (touch_x < pole3t[2]) && (touch_y < pole3t[3]) && (touch_y > pole3t[1])){ + hold(); + return Yellow; +} + +if((touch_x > pole4t[0]) && (touch_x < pole4t[2]) && (touch_y < pole4t[3]) && (touch_y > pole4t[1])){ + hold(); + return GreenYellow; +} + +if((touch_x > pole5t[0]) && (touch_x < pole5t[2]) && (touch_y < pole5t[3]) && (touch_y > pole5t[1])){ + hold(); + return Green; +} + +if((touch_x > pole6t[0]) && (touch_x < pole6t[2]) && (touch_y < pole6t[3]) && (touch_y > pole6t[1])){ + hold(); + return White; +} + +if((touch_x > pole7t[0]) && (touch_x < pole7t[2]) && (touch_y < pole7t[3]) && (touch_y > pole7t[1])){ + hold(); + return Cyan; +} + +if((touch_x > pole8t[0]) && (touch_x < pole8t[2]) && (touch_y < pole8t[3]) && (touch_y > pole8t[1])){ + hold(); + return DarkCyan; +} + +if((touch_x > pole9t[0]) && (touch_x < pole9t[2]) && (touch_y < pole9t[3]) && (touch_y > pole9t[1])){ + hold(); + return Blue; +} + +if((touch_x > pole10t[0]) && (touch_x < pole10t[2]) && (touch_y < pole10t[3]) && (touch_y > pole10t[1])){ + hold(); + return Purple; +} + +if((touch_x > pole11t[0]) && (touch_x < pole11t[2]) && (touch_y < pole11t[3]) && (touch_y > pole11t[1])){ + hold(); + return Magenta; +} + +if((touch_x > pole12t[0]) && (touch_x < pole12t[2]) && (touch_y < pole12t[3]) && (touch_y > pole12t[1])){ + hold(); + return Pink; +} + } + } + } + +} + + void nastaveni(){ int pravy[] = {34,0,165,46}; //pravý čudlík int levy[] = {34,274,165,320}; //levý čudlík @@ -789,7 +939,424 @@ } } +void on_off(){ + int pravy[] = {34,0,165,46}; //pravý čudlík + int levy[] = {34,274,165,320}; //levý čudlík + + int up1[] = {172,28,258,57}; + int down1[] = {172,142,258,171}; + + int up2[] = {62,28,148,57}; + int down2[] = {62,142,148,171}; + + bool a = true; + + cas_hodiny_on = 0; + cas_minuty_on = 0; + cas_hodiny_off = 0; + cas_minuty_off = 0; + + int h1_on = cas_hodiny_on / 10; + int h2_on = cas_hodiny_on % 10; + int h1_off = cas_hodiny_off / 10; + int h2_off = cas_hodiny_off % 10; + + char cisla[10][3] = { + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + }; + + int m1_on = cas_minuty_on / 10; + int m2_on = cas_minuty_on % 10; + + int m1_off = cas_minuty_off / 10; + int m2_off = cas_minuty_off % 10; + + int blue1[] = {71,65,249,134}; + int bar2[] = {159,200,320,240}; + int bar1[] = {0,200,160,240}; + + int b1[] = {200,159,240,320}; + int b2[] = {200,0,240,160}; + spi.Bitmap(46,0,228,200,(unsigned char*)gImage_pozadi); + spi.Bitmap(62,28,86,29,(unsigned char*)gImage_nahoru); + spi.Bitmap(62,142,86,29,(unsigned char*)gImage_dolu); + + spi.Bitmap(172,28,86,29,(unsigned char*)gImage_nahoru); + spi.Bitmap(172,142,86,29,(unsigned char*)gImage_dolu); + + + spi.fillrect(bar1[0],bar1[1],bar1[2],bar1[3],Select); + spi.fillrect(bar2[0],bar2[1],bar2[2],bar2[3],Black); + spi.fillrect(blue1[0],blue1[1],blue1[2],blue1[3],MojeSeda); + + spi.set_font((unsigned char*) Arial21x21); + spi.background(Select); + spi.locate(55,210); + spi.printf(" ON"); + spi.background(Black); + spi.locate(215,210); + spi.printf(" OFF"); + + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(80,80); + spi.printf(cisla[h1_on]); + spi.locate(110,80); + spi.printf(cisla[h2_on]); + spi.locate(155,80); + spi.printf(":"); + spi.locate(189,80); + spi.printf(cisla[m1_on]); + spi.locate(219,80); + spi.printf(cisla[m2_on]); + + grafika(9); + grafika(7); + while(1){ +if (touch.DataAvailable()) + { + if(touch.Read()) + { + unsigned short int touch_y = touch.GetX(); // 0-320 + unsigned short int touch_x = touch.GetY(); // 0-240 + + //pravý čudlik + if ((touch_x > pravy[0]) && (touch_x < pravy[2]) && (touch_y < pravy[3]) && (touch_y > pravy[1])){ + + //GRAFIKA************************************************** + spi.Bitmap(274,34,46,38,(unsigned char*)gImage_vrch_s); + spi.Bitmap(274,72,46,42,(unsigned char*)gImage_potvrdit_s); + spi.Bitmap(274,114,46,26,(unsigned char*)gImage_spodek_s); + spi.Bitmap(274,140,46,26,(unsigned char*)gImage_spodek_s); + //GRAFIKA************************************************** + hold(); + + time_on = 1037059200 + (cas_hodiny_on * 3600) + (cas_minuty_on * 60); + time_off = 1037059200 + (cas_hodiny_off * 3600) + (cas_minuty_off * 60); + + grafika(); + Button(); + wait(0.2); + } + //pravý čudlik + + //levý čudlik + if ((touch_x > levy[0]) && (touch_x < levy[2]) && (touch_y < levy[3]) && (touch_y > levy[1])){ + //GRAFIKA************************************************** + spi.Bitmap(0,34,46,38,(unsigned char*)gImage_vrch_s); + spi.Bitmap(0,72,46,42,(unsigned char*)gImage_zrusit_s);// levy + spi.Bitmap(0,114,46,26,(unsigned char*)gImage_spodek_s); + spi.Bitmap(0,140,46,26,(unsigned char*)gImage_spodek_s); + //GRAFIKA************************************************** + + hold(); + grafika(); + Button(); + wait(0.2); + } + //levý čudlik + + //ON + if ((touch_x > b1[0]) && (touch_x < b1[2]) && (touch_y < b1[3]) && (touch_y > b1[1])){ + + spi.fillrect(bar1[0],bar1[1],bar1[2],bar1[3],Select); + spi.set_font((unsigned char*) Arial21x21); + spi.background(Select); + spi.locate(55,210); + spi.printf(" ON"); + + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(80,80); + spi.printf(cisla[h1_on]); + spi.locate(110,80); + spi.printf(cisla[h2_on]); + spi.locate(189,80); + spi.printf(cisla[m1_on]); + spi.locate(219,80); + spi.printf(cisla[m2_on]); + + spi.fillrect(bar2[0],bar2[1],bar2[2],bar2[3],Black); + spi.set_font((unsigned char*) Arial21x21); + spi.background(Black); + spi.locate(215,210); + spi.printf(" OFF"); + + a = true; + hold(); + wait(0.2); + } + //ON + + //OFF + if ((touch_x > b2[0]) && (touch_x < b2[2]) && (touch_y < b2[3]) && (touch_y > b2[1])){ + spi.fillrect(bar1[0],bar1[1],bar1[2],bar1[3],Black); + spi.set_font((unsigned char*) Arial21x21); + spi.background(Black); + spi.locate(55,210); + spi.printf(" ON"); + + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(80,80); + spi.printf(cisla[h1_off]); + spi.locate(110,80); + spi.printf(cisla[h2_off]); + spi.locate(189,80); + spi.printf(cisla[m1_off]); + spi.locate(219,80); + spi.printf(cisla[m2_off]); + + + spi.fillrect(bar2[0],bar2[1],bar2[2],bar2[3],Select); + spi.set_font((unsigned char*) Arial21x21); + spi.background(Select); + spi.locate(215,210); + spi.printf(" OFF"); + a = false; + hold(); + wait(0.2); + } + //OFF + +if(a == true){////////////////////////////////////ON +if((touch_x > up1[1]) && (touch_x < up1[3]) && (touch_y < up1[2]) && (touch_y > up1[0])){ + spi.Bitmap(62,28,86,29,(unsigned char*)gImage_nahoru_s); + while ((touch.DataAvailable()) && (h2_on < 10)){ + h2_on++; + cas_hodiny_on++; + if(cas_hodiny_on == 24){ + cas_hodiny_on = 0; + } + if(h2_on == 10){ + h2_on = 0; + h1_on++; + } + if((h1_on == 2)&&(h2_on == 4)){ + h2_on = 0; + h1_on = 0; + } + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(80,80); + spi.printf(cisla[h1_on]); + spi.locate(110,80); + spi.printf(cisla[h2_on]); + + + wait(0.1); + } + spi.Bitmap(62,28,86,29,(unsigned char*)gImage_nahoru); +} +if((touch_x > down1[1]) && (touch_x < down1[3]) && (touch_y < down1[2]) && (touch_y > down1[0])){ + spi.Bitmap(62,142,86,29,(unsigned char*)gImage_dolu_s); + while ((touch.DataAvailable()) && (h2_on < 10)){ + h2_on--; + if((h2_on < 0)&&(h1_on == 0)){ + h2_on = 3; + h1_on = 2; + } + if(h2_on < 0){ + h2_on = 9; + h1_on--; + } + cas_hodiny_on--; + if(cas_hodiny_on < 0){ + cas_hodiny_on = 23; + } + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(80,80); + spi.printf(cisla[h1_on]); + spi.locate(110,80); + spi.printf(cisla[h2_on]); + wait(0.1); + } + spi.Bitmap(62,142,86,29,(unsigned char*)gImage_dolu); +} +if((touch_x > up2[1]) && (touch_x < up2[3]) && (touch_y < up2[2]) && (touch_y > up2[0])){ + spi.Bitmap(172,28,86,29,(unsigned char*)gImage_nahoru_s); + while ((touch.DataAvailable()) && (m2_on < 10)){ + m2_on++; + cas_minuty_on++; + if(cas_minuty_on == 60){ + cas_minuty_on = 0; + } + if((m1_on == 5)&&(m2_on == 10)){ + m2_on = 0; + m1_on = 0; + } + if(m2_on == 10){ + m2_on = 0; + m1_on++; + } + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(189,80); + spi.printf(cisla[m1_on]); + spi.locate(219,80); + spi.printf(cisla[m2_on]); + wait(0.1); + } + + spi.Bitmap(172,28,86,29,(unsigned char*)gImage_nahoru); +} +if((touch_x > down2[1]) && (touch_x < down2[3]) && (touch_y < down2[2]) && (touch_y > down2[0])){ + spi.Bitmap(172,142,86,29,(unsigned char*)gImage_dolu_s); + while ((touch.DataAvailable()) && (m2_on < 10)){ + m2_on--; + if((m2_on < 0)&&(m1_on == 0)){ + m2_on = 9; + m1_on = 5; + } + if(m2_on < 0){ + m2_on = 9; + m1_on--; + } + cas_minuty_on--; + if(cas_minuty_on < 0){ + cas_minuty_on = 59; + } + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(189,80); + spi.printf(cisla[m1_on]); + spi.locate(219,80); + spi.printf(cisla[m2_on]); + wait(0.1); + } + + spi.Bitmap(172,142,86,29,(unsigned char*)gImage_dolu); +} + +} +else{////////////////////////////////////OFF +if((touch_x > up1[1]) && (touch_x < up1[3]) && (touch_y < up1[2]) && (touch_y > up1[0])){ + spi.Bitmap(62,28,86,29,(unsigned char*)gImage_nahoru_s); + while ((touch.DataAvailable()) && (h2_off < 10)){ + h2_off++; + cas_hodiny_off++; + if(cas_hodiny_off == 24){ + cas_hodiny_off = 0; + } + if(h2_off == 10){ + h2_off = 0; + h1_off++; + } + if((h1_off == 2)&&(h2_off == 4)){ + h2_off = 0; + h1_off = 0; + } + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(80,80); + spi.printf(cisla[h1_off]); + spi.locate(110,80); + spi.printf(cisla[h2_off]); + + + wait(0.1); + } + spi.Bitmap(62,28,86,29,(unsigned char*)gImage_nahoru); +} +if((touch_x > down1[1]) && (touch_x < down1[3]) && (touch_y < down1[2]) && (touch_y > down1[0])){ + spi.Bitmap(62,142,86,29,(unsigned char*)gImage_dolu_s); + while ((touch.DataAvailable()) && (h2_off < 10)){ + h2_off--; + if((h2_off < 0)&&(h1_off == 0)){ + h2_off = 3; + h1_off = 2; + } + if(h2_off < 0){ + h2_off = 9; + h1_off--; + } + cas_hodiny_off--; + if(cas_hodiny_off < 0){ + cas_hodiny_off = 23; + } + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(80,80); + spi.printf(cisla[h1_off]); + spi.locate(110,80); + spi.printf(cisla[h2_off]); + wait(0.1); + } + spi.Bitmap(62,142,86,29,(unsigned char*)gImage_dolu); +} +if((touch_x > up2[1]) && (touch_x < up2[3]) && (touch_y < up2[2]) && (touch_y > up2[0])){ + spi.Bitmap(172,28,86,29,(unsigned char*)gImage_nahoru_s); + while ((touch.DataAvailable()) && (m2_off < 10)){ + m2_off++; + cas_minuty_off++; + if(cas_minuty_off == 60){ + cas_minuty_off = 0; + } + if((m1_off == 5)&&(m2_off == 10)){ + m2_off = 0; + m1_off = 0; + } + if(m2_off == 10){ + m2_off = 0; + m1_off++; + } + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(189,80); + spi.printf(cisla[m1_off]); + spi.locate(219,80); + spi.printf(cisla[m2_off]); + wait(0.1); + } + + spi.Bitmap(172,28,86,29,(unsigned char*)gImage_nahoru); +} +if((touch_x > down2[1]) && (touch_x < down2[3]) && (touch_y < down2[2]) && (touch_y > down2[0])){ + spi.Bitmap(172,142,86,29,(unsigned char*)gImage_dolu_s); + while ((touch.DataAvailable()) && (m2_off < 10)){ + m2_off--; + if((m2_off < 0)&&(m1_off == 0)){ + m2_off = 9; + m1_off = 5; + } + if(m2_off < 0){ + m2_off = 9; + m1_off--; + } + cas_minuty_off--; + if(cas_minuty_off < 0){ + cas_minuty_off = 59; + } + spi.set_font((unsigned char*) Arial48x47); + spi.background(MojeSeda); + spi.locate(189,80); + spi.printf(cisla[m1_off]); + spi.locate(219,80); + spi.printf(cisla[m2_off]); + wait(0.1); + } + + spi.Bitmap(172,142,86,29,(unsigned char*)gImage_dolu); +} + +} + + + } +} +} +} void nastavit_hodiny(){ int pravy[] = {34,0,165,46}; //pravý čudlík @@ -869,9 +1436,9 @@ spi.Bitmap(274,140,46,26,(unsigned char*)gImage_spodek_s); //GRAFIKA************************************************** hold(); - thread.terminate(); + thread_h.terminate(); cas_nastavit = 1037059200 + (cas_hodiny * 3600) + (cas_minuty * 60); - thread.start(hodiny); + thread_h.start(hodiny); grafika(9); nastaveni(); wait(0.2); @@ -1028,6 +1595,9 @@ } main(){ +r.period_us(1000); +g.period_us(1000); +b.period_us(1000); my_red = 1; my_green = 1; @@ -1039,16 +1609,13 @@ spi.background(Black); spi.foreground(White); spi.cls(); - + send_color(255,20,147,100); grafika(); br.period_us(1000); br.write(lcd_jas); - - /* nastavit_hodiny(); - thread.start(hodiny);*/ Button();