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:
mlin
Date:
Thu May 25 15:32:20 2017 +0000
Revision:
31:3255668e6b08
Parent:
29:684e2a3e17b5
Child:
32:56f59b79720c
.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Owenmatthewmcgowan 19:4c30c3182e04 1 int digital_clock_press(){
mlin 16:3cb9b1fbc039 2 int x = readX();
mlin 16:3cb9b1fbc039 3 int y = readY();
mlin 16:3cb9b1fbc039 4 if (touching == 1) {
mlin 31:3255668e6b08 5
Owenmatthewmcgowan 29:684e2a3e17b5 6 if (x > 0 && x < 50 && y > 0 & y < 50) // side button 1 (clock state)
mlin 16:3cb9b1fbc039 7 {
mlin 16:3cb9b1fbc039 8 //set desired state to 1
mlin 16:3cb9b1fbc039 9 return 1;
mlin 16:3cb9b1fbc039 10 }
Owenmatthewmcgowan 29:684e2a3e17b5 11 else if (x > 0 && x < 50 && y > 50 & y < 100) //side button 2 (change time)
mlin 16:3cb9b1fbc039 12 {
mlin 16:3cb9b1fbc039 13 //set desired state to 2
mlin 16:3cb9b1fbc039 14 return 2;
mlin 16:3cb9b1fbc039 15 }
mlin 16:3cb9b1fbc039 16 else if (x > 0 && x < 50 && y > 100 && y < 150) // side button 3
mlin 16:3cb9b1fbc039 17 {
mlin 16:3cb9b1fbc039 18 //set desired state to 3
mlin 16:3cb9b1fbc039 19 return 3;
mlin 16:3cb9b1fbc039 20 }
mlin 16:3cb9b1fbc039 21 else if (x > 0 && x < 50 && y > 150 && y < 200) // side button 4
mlin 16:3cb9b1fbc039 22 {
mlin 16:3cb9b1fbc039 23 //set desired state to 4
mlin 16:3cb9b1fbc039 24 return 4;
mlin 17:356a299d3224 25 }else if (x > 0 && x < 50 && y > 200 && y < 240) // button home
mlin 16:3cb9b1fbc039 26 {
mlin 16:3cb9b1fbc039 27 //set desired state to 0
mlin 16:3cb9b1fbc039 28 return 0;
mlin 16:3cb9b1fbc039 29 }
Owenmatthewmcgowan 19:4c30c3182e04 30 else if (x > 140 && x < 320 && y > 100 && y < 200) // alarm button on or off
mlin 16:3cb9b1fbc039 31 {
mlin 16:3cb9b1fbc039 32 //set desired state to 5
mlin 17:356a299d3224 33 f_alarm = !(f_alarm);
mlin 17:356a299d3224 34 return -1;
mlin 16:3cb9b1fbc039 35 }
mlin 16:3cb9b1fbc039 36 }
mlin 16:3cb9b1fbc039 37 return -1;
mlin 16:3cb9b1fbc039 38 }
mlin 16:3cb9b1fbc039 39
mlin 16:3cb9b1fbc039 40
mlin 16:3cb9b1fbc039 41
mlin 16:3cb9b1fbc039 42
Owenmatthewmcgowan 19:4c30c3182e04 43 void runclock()
mlin 16:3cb9b1fbc039 44 {
mlin 16:3cb9b1fbc039 45 draw_state(1);
mlin 16:3cb9b1fbc039 46 while (f_state == 1){
Owenmatthewmcgowan 19:4c30c3182e04 47 read_time();
mlin 17:356a299d3224 48 TFT.set_font((unsigned char*) Arial24x23); //set alarm hour
Owenmatthewmcgowan 19:4c30c3182e04 49 if (tm_c.sec == 0){
Owenmatthewmcgowan 19:4c30c3182e04 50 TFT.locate(250,40);
Owenmatthewmcgowan 19:4c30c3182e04 51 TFT.printf(" ");
Owenmatthewmcgowan 19:4c30c3182e04 52 if (tm_c.min == 0){
Owenmatthewmcgowan 19:4c30c3182e04 53 TFT.locate(160,40);
Owenmatthewmcgowan 19:4c30c3182e04 54 printf("%d",tm_c.min);
Owenmatthewmcgowan 19:4c30c3182e04 55 if (tm_c.hour == 0)
Owenmatthewmcgowan 19:4c30c3182e04 56 {
Owenmatthewmcgowan 19:4c30c3182e04 57 TFT.locate(70,40);
Owenmatthewmcgowan 19:4c30c3182e04 58 printf("%d",tm_c.hour);
Owenmatthewmcgowan 19:4c30c3182e04 59 }
Owenmatthewmcgowan 19:4c30c3182e04 60 }
Owenmatthewmcgowan 19:4c30c3182e04 61 }
Owenmatthewmcgowan 19:4c30c3182e04 62
Owenmatthewmcgowan 19:4c30c3182e04 63
Owenmatthewmcgowan 19:4c30c3182e04 64
mlin 17:356a299d3224 65 TFT.locate(70,40);
mlin 17:356a299d3224 66 TFT.printf("%d",tm_c.hour);
mlin 17:356a299d3224 67 TFT.locate(160,40);
mlin 17:356a299d3224 68 TFT.printf("%d",tm_c.min);
mlin 17:356a299d3224 69 TFT.locate(250,40);
mlin 17:356a299d3224 70 TFT.printf("%d",tm_c.sec);
mlin 17:356a299d3224 71 TFT.locate(60,140);
mlin 17:356a299d3224 72 TFT.set_font((unsigned char*) Arial12x12);
mlin 31:3255668e6b08 73 TFT.printf("%s",tm_c.wday);
mlin 17:356a299d3224 74 TFT.set_font((unsigned char*) Arial24x23);
mlin 17:356a299d3224 75 if (f_alarm) {
Owenmatthewmcgowan 19:4c30c3182e04 76 TFT.locate(160,140);
Owenmatthewmcgowan 19:4c30c3182e04 77 TFT.printf("%d",tm_a_hr);
Owenmatthewmcgowan 19:4c30c3182e04 78 TFT.locate(250,140);
Owenmatthewmcgowan 19:4c30c3182e04 79 TFT.printf("%d",tm_a_min);
mlin 17:356a299d3224 80 }
mlin 17:356a299d3224 81 else
mlin 17:356a299d3224 82 {
mlin 17:356a299d3224 83 TFT.locate(160,140);
mlin 17:356a299d3224 84 TFT.printf(" ");
Owenmatthewmcgowan 19:4c30c3182e04 85 TFT.locate(250,140);
mlin 17:356a299d3224 86 TFT.printf(" ");
mlin 17:356a299d3224 87 }
Owenmatthewmcgowan 19:4c30c3182e04 88 TFT.locate(70,210);
Owenmatthewmcgowan 19:4c30c3182e04 89 TFT.printf("%d / %d / %d", tm_c.date, tm_c.mon, tm_c.year);
Owenmatthewmcgowan 19:4c30c3182e04 90 wait(0.2);
Owenmatthewmcgowan 19:4c30c3182e04 91 /* TFT.locate(160,210);
mlin 17:356a299d3224 92 TFT.printf("%d",tm_c.mon);
Owenmatthewmcgowan 19:4c30c3182e04 93 TFT.locate(220,210);
Owenmatthewmcgowan 19:4c30c3182e04 94 TFT.printf("%d",tm_c.year); */
Owenmatthewmcgowan 19:4c30c3182e04 95
mlin 17:356a299d3224 96 switch (digital_clock_press()){
mlin 17:356a299d3224 97 case (-1): break;
mlin 17:356a299d3224 98 case (0): f_state = 0; break;
mlin 17:356a299d3224 99 case (1): f_state = 2; break;
mlin 17:356a299d3224 100 case (2): f_state = 3; break;
mlin 17:356a299d3224 101 case (3): f_state = 4; break;
mlin 17:356a299d3224 102 }
mlin 17:356a299d3224 103 }
mlin 17:356a299d3224 104 }