Contains the main execution of the clock uses headers to import functions

Dependencies:   RTC-DS1307 SPI_TFT_ILI9341 TFT_fonts mbed tsi_sensor

Fork of TFT_Mikroelectronika_IL9341_sketchpad by Oxford CWM Team

Committer:
Owenmatthewmcgowan
Date:
Fri May 26 09:37:06 2017 +0000
Revision:
49:243b5e826228
Parent:
41:3f2e75e7fbeb
merge;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mlin 10:9d9b3b9b28b8 1
mlin 9:eee503060d69 2 #include "string"
mlin 9:eee503060d69 3 #include "Arial12x12.h"
mlin 9:eee503060d69 4 #include "Arial24x23.h"
mlin 9:eee503060d69 5 #include "Arial28x28.h"
mlin 9:eee503060d69 6 #include "font_big.h"
mlin 9:eee503060d69 7
tunagonen 39:4b70d28cb273 8 //the functions to draw buttons , the analog clock and whiteboard
mlin 9:eee503060d69 9
tunagonen 39:4b70d28cb273 10 void drawbuttons() //draw buttons
mlin 9:eee503060d69 11 {
mlin 10:9d9b3b9b28b8 12 TFT.fillrect(0, 0, 50, 50, Red);
mlin 10:9d9b3b9b28b8 13 TFT.fillrect(0, 50, 50, 100, Green);
mlin 10:9d9b3b9b28b8 14 TFT.fillrect(0, 100, 50, 150, Blue);
mlin 10:9d9b3b9b28b8 15 TFT.fillrect(0, 150, 50, 200, White);
mlin 10:9d9b3b9b28b8 16 TFT.fillrect(0, 200, 50, 250, Black);
mlin 10:9d9b3b9b28b8 17
mlin 10:9d9b3b9b28b8 18 TFT.rect(0, 0, 50, 50, White);
mlin 10:9d9b3b9b28b8 19 TFT.rect(0, 50, 50, 100, White);
mlin 10:9d9b3b9b28b8 20 TFT.rect(0, 100, 50, 150, White);
mlin 10:9d9b3b9b28b8 21 TFT.rect(0, 150, 50, 200, White);
mlin 10:9d9b3b9b28b8 22 TFT.rect(0, 200, 50, 250, White);
mlin 10:9d9b3b9b28b8 23 }
tunagonen 39:4b70d28cb273 24 void draw_clockface(int x0, int y0, int r, int markerlength, int color) // final version for analog clock
tunagonen 39:4b70d28cb273 25 {
mlin 11:1da15361a35b 26 TFT.circle(x0, y0, r, White);
tunagonen 21:bcdd41235b69 27 for ( int n = 0; n < 13; n++) {
tunagonen 21:bcdd41235b69 28 int x1, y1, x2, y2= 0;
tunagonen 21:bcdd41235b69 29 double angle = n * 2 * M_PI / 12;
tunagonen 21:bcdd41235b69 30 x2 = r * cos(angle) + x0;
tunagonen 21:bcdd41235b69 31 y2 = r * sin(angle) + y0;
tunagonen 21:bcdd41235b69 32 x1 = (r - markerlength) * cos(angle) + x0;
tunagonen 21:bcdd41235b69 33 y1 = (r - markerlength) * sin(angle) + y0;
tunagonen 21:bcdd41235b69 34 TFT.line(x1, y1, x2, y2, color);
tunagonen 21:bcdd41235b69 35 }
mlin 11:1da15361a35b 36 }
tunagonen 39:4b70d28cb273 37 void whiteboard() //white board fuction
Owenmatthewmcgowan 30:af38c80391cb 38 {
Owenmatthewmcgowan 30:af38c80391cb 39 TFT.cls();
mlin 10:9d9b3b9b28b8 40 int color = 0;
mlin 40:05798eeadd02 41 int xp = 0,yp = 0,sw = 0;;
mlin 10:9d9b3b9b28b8 42 drawbuttons();
mlin 10:9d9b3b9b28b8 43 bool running = true;
mlin 10:9d9b3b9b28b8 44 while(running) {
mlin 11:1da15361a35b 45
mlin 10:9d9b3b9b28b8 46 xp = readX();
mlin 10:9d9b3b9b28b8 47 yp = readY();
mlin 10:9d9b3b9b28b8 48 // top chunk of the screen is the button area //
mlin 10:9d9b3b9b28b8 49 // 0<y<50 is palette area //
mlin 9:eee503060d69 50
mlin 10:9d9b3b9b28b8 51 //pc.printf("xpos=%d\t,\typo=%d",xpos,ypos);
mlin 11:1da15361a35b 52 // xp=(240*(xpos-5800))/51200;
mlin 11:1da15361a35b 53 // yp=320-(320*(ypos-3000))/58300;
mlin 10:9d9b3b9b28b8 54 if(touching == 1) pc.printf("\txp=%d\t,\typo=%d\n\r", xp, yp);
Owenmatthewmcgowan 30:af38c80391cb 55 if(xp > 5 && yp > 50 && touching == 1) TFT.fillcircle(xp,yp, 2, color);
mlin 38:3fe3bafbf0c7 56 if(xp < 50) { // color buttons
mlin 38:3fe3bafbf0c7 57 sw = (int)yp / 50;
tunagonen 39:4b70d28cb273 58 switch(sw) { // changing colors
mlin 10:9d9b3b9b28b8 59 case 0:
mlin 10:9d9b3b9b28b8 60 color = 0xf800;
mlin 10:9d9b3b9b28b8 61 break;
mlin 10:9d9b3b9b28b8 62 case 1:
mlin 10:9d9b3b9b28b8 63 color = 0x07e0;
mlin 10:9d9b3b9b28b8 64 break;
mlin 10:9d9b3b9b28b8 65 case 2:
mlin 10:9d9b3b9b28b8 66 color = 0x001f;
mlin 10:9d9b3b9b28b8 67 break;
mlin 10:9d9b3b9b28b8 68 case 3:
mlin 10:9d9b3b9b28b8 69 color = 0xffff;
mlin 10:9d9b3b9b28b8 70 break;
mlin 10:9d9b3b9b28b8 71 case 4:
mlin 10:9d9b3b9b28b8 72 running = false;
mlin 10:9d9b3b9b28b8 73 color = 0x0000;
mlin 10:9d9b3b9b28b8 74 TFT.cls();
mlin 10:9d9b3b9b28b8 75 break;
mlin 10:9d9b3b9b28b8 76 }
mlin 10:9d9b3b9b28b8 77 // if(xp<50) color=0xF800;
mlin 10:9d9b3b9b28b8 78 // if(50<xp && xp<100) color=0x07e0;
mlin 10:9d9b3b9b28b8 79 // if(xp>100 && xp<150) color=0x001f;
mlin 10:9d9b3b9b28b8 80 }
mlin 10:9d9b3b9b28b8 81
mlin 10:9d9b3b9b28b8 82 wait(0.01);
mlin 10:9d9b3b9b28b8 83
mlin 10:9d9b3b9b28b8 84 }
mlin 9:eee503060d69 85 }