STM32F7-Discovery - TFT + Touch and Count down Timer Ver.1.0.5

Dependencies:   BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG mbed

Fork of F746NG_TIMER by Enrico Marinoni

Committer:
emcu
Date:
Sat Feb 27 17:33:47 2016 +0000
Revision:
0:ef97dc9b062e
Child:
1:478d8983fdde
STM32F7-Discovery - TFT + Touch and Count down Timer

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emcu 0:ef97dc9b062e 1 /*
emcu 0:ef97dc9b062e 2
emcu 0:ef97dc9b062e 3 TIMER
emcu 0:ef97dc9b062e 4
emcu 0:ef97dc9b062e 5 STM32F7-Discovery Demo by www.emcu.it
emcu 0:ef97dc9b062e 6
emcu 0:ef97dc9b062e 7 Date: Feb.2016
emcu 0:ef97dc9b062e 8 Ver.: 1.0.1
emcu 0:ef97dc9b062e 9
emcu 0:ef97dc9b062e 10 *
emcu 0:ef97dc9b062e 11 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
emcu 0:ef97dc9b062e 12 * and associated documentation files (the "Software"), to deal in the Software without
emcu 0:ef97dc9b062e 13 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
emcu 0:ef97dc9b062e 14 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
emcu 0:ef97dc9b062e 15 * Software is furnished to do so, subject to the following conditions:
emcu 0:ef97dc9b062e 16 *
emcu 0:ef97dc9b062e 17 * The above copyright notice and this permission notice shall be included in all copies or
emcu 0:ef97dc9b062e 18 * substantial portions of the Software.
emcu 0:ef97dc9b062e 19 *
emcu 0:ef97dc9b062e 20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
emcu 0:ef97dc9b062e 21 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
emcu 0:ef97dc9b062e 22 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
emcu 0:ef97dc9b062e 23 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
emcu 0:ef97dc9b062e 24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
emcu 0:ef97dc9b062e 25 *
emcu 0:ef97dc9b062e 26
emcu 0:ef97dc9b062e 27 */
emcu 0:ef97dc9b062e 28
emcu 0:ef97dc9b062e 29 #include "TS_DISCO_F746NG.h"
emcu 0:ef97dc9b062e 30 #include "LCD_DISCO_F746NG.h"
emcu 0:ef97dc9b062e 31
emcu 0:ef97dc9b062e 32 LCD_DISCO_F746NG lcd;
emcu 0:ef97dc9b062e 33 TS_DISCO_F746NG ts;
emcu 0:ef97dc9b062e 34 DigitalOut led1(LED1);
emcu 0:ef97dc9b062e 35
emcu 0:ef97dc9b062e 36 int pos = 1;
emcu 0:ef97dc9b062e 37 uint8_t min = 45;
emcu 0:ef97dc9b062e 38 uint8_t Mem_min = 45;
emcu 0:ef97dc9b062e 39 uint16_t xpos=20, ypos=5;
emcu 0:ef97dc9b062e 40 int n=0;
emcu 0:ef97dc9b062e 41 int tcount=min;
emcu 0:ef97dc9b062e 42
emcu 0:ef97dc9b062e 43 void Logo(void);
emcu 0:ef97dc9b062e 44 void RedBox(int x, int y, int larg, int alt);
emcu 0:ef97dc9b062e 45
emcu 0:ef97dc9b062e 46
emcu 0:ef97dc9b062e 47 int main()
emcu 0:ef97dc9b062e 48 {
emcu 0:ef97dc9b062e 49 led1 = 1;
emcu 0:ef97dc9b062e 50
emcu 0:ef97dc9b062e 51 TS_StateTypeDef TS_State;
emcu 0:ef97dc9b062e 52
emcu 0:ef97dc9b062e 53 uint16_t x, y;
emcu 0:ef97dc9b062e 54 uint8_t idx;
emcu 0:ef97dc9b062e 55 uint8_t text[30];
emcu 0:ef97dc9b062e 56 int Count=0;
emcu 0:ef97dc9b062e 57 int Minuti=0;
emcu 0:ef97dc9b062e 58 int n=0;
emcu 0:ef97dc9b062e 59
emcu 0:ef97dc9b062e 60
emcu 0:ef97dc9b062e 61 lcd.SetBackColor(LCD_COLOR_BLUE);
emcu 0:ef97dc9b062e 62 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 63
emcu 0:ef97dc9b062e 64 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 65 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)" By: www.emcu.it ", CENTER_MODE);
emcu 0:ef97dc9b062e 66 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 67 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" Written using mBed ", CENTER_MODE);
emcu 0:ef97dc9b062e 68 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 69 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)" Touch the screen ", CENTER_MODE);
emcu 0:ef97dc9b062e 70 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" for continue. ", CENTER_MODE);
emcu 0:ef97dc9b062e 71 lcd.DisplayStringAt(0, LINE(7), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 72
emcu 0:ef97dc9b062e 73 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 74 while(TS_State.touchDetected == 0)
emcu 0:ef97dc9b062e 75 {
emcu 0:ef97dc9b062e 76 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 77 }
emcu 0:ef97dc9b062e 78
emcu 0:ef97dc9b062e 79 // ReStart:
emcu 0:ef97dc9b062e 80
emcu 0:ef97dc9b062e 81 while(1)
emcu 0:ef97dc9b062e 82 {
emcu 0:ef97dc9b062e 83 lcd.SetFont(&Font24);
emcu 0:ef97dc9b062e 84 lcd.SetBackColor(LCD_COLOR_BLUE);
emcu 0:ef97dc9b062e 85 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 86 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)" By: www.emcu.it ", CENTER_MODE);
emcu 0:ef97dc9b062e 87 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)" Touch the screen for: ", CENTER_MODE);
emcu 0:ef97dc9b062e 88 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)" LEFT for decrease MIN ", CENTER_MODE);
emcu 0:ef97dc9b062e 89 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" RIGHT for increase MIN ", CENTER_MODE);
emcu 0:ef97dc9b062e 90 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)" REDbox for start TIMER ", CENTER_MODE);
emcu 0:ef97dc9b062e 91 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 92 sprintf((char*)text, " MIN: %d ", min);
emcu 0:ef97dc9b062e 93 lcd.DisplayStringAt(xpos, LINE(7), (uint8_t *)&text, LEFT_MODE);
emcu 0:ef97dc9b062e 94
emcu 0:ef97dc9b062e 95 // Draw the RED box that indicate the area to touch for start Timer
emcu 0:ef97dc9b062e 96 RedBox(250, 220, 50, 50);
emcu 0:ef97dc9b062e 97
emcu 0:ef97dc9b062e 98 // Whait touch
emcu 0:ef97dc9b062e 99 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 100 while(TS_State.touchDetected == 0)
emcu 0:ef97dc9b062e 101 {
emcu 0:ef97dc9b062e 102 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 103 }
emcu 0:ef97dc9b062e 104
emcu 0:ef97dc9b062e 105
emcu 0:ef97dc9b062e 106 // Increment
emcu 0:ef97dc9b062e 107 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 108 if ((TS_State.touchDetected) && (TS_State.touchX[0] > 400))
emcu 0:ef97dc9b062e 109 {
emcu 0:ef97dc9b062e 110 min++;
emcu 0:ef97dc9b062e 111 if (min>254)
emcu 0:ef97dc9b062e 112 min=254;
emcu 0:ef97dc9b062e 113 lcd.SetBackColor(LCD_COLOR_BLUE);
emcu 0:ef97dc9b062e 114 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 115 sprintf((char*)text, " MIN: %d ", min);
emcu 0:ef97dc9b062e 116 lcd.DisplayStringAt(xpos, LINE(7), (uint8_t *)&text, LEFT_MODE);
emcu 0:ef97dc9b062e 117 }
emcu 0:ef97dc9b062e 118 // Decrement
emcu 0:ef97dc9b062e 119 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 120 if ((TS_State.touchDetected) && (TS_State.touchX[0] < 200))
emcu 0:ef97dc9b062e 121 {
emcu 0:ef97dc9b062e 122 min--;
emcu 0:ef97dc9b062e 123 if (min<1)
emcu 0:ef97dc9b062e 124 min=1;
emcu 0:ef97dc9b062e 125 lcd.SetBackColor(LCD_COLOR_BLUE);
emcu 0:ef97dc9b062e 126 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 127 sprintf((char*)text, " MIN: %d ", min);
emcu 0:ef97dc9b062e 128 lcd.DisplayStringAt(xpos, LINE(7), (uint8_t *)&text, LEFT_MODE);
emcu 0:ef97dc9b062e 129 }
emcu 0:ef97dc9b062e 130
emcu 0:ef97dc9b062e 131 // Whait touch
emcu 0:ef97dc9b062e 132 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 133 while(TS_State.touchDetected == 0)
emcu 0:ef97dc9b062e 134 {
emcu 0:ef97dc9b062e 135 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 136 }
emcu 0:ef97dc9b062e 137
emcu 0:ef97dc9b062e 138 wait(0.1);
emcu 0:ef97dc9b062e 139
emcu 0:ef97dc9b062e 140 // Draw the RED box that indicate the area to touch for start Timer
emcu 0:ef97dc9b062e 141 RedBox(250, 220, 50, 50);
emcu 0:ef97dc9b062e 142
emcu 0:ef97dc9b062e 143 /*
emcu 0:ef97dc9b062e 144 for (n=1; n<50; n++)
emcu 0:ef97dc9b062e 145 {
emcu 0:ef97dc9b062e 146 lcd.DrawRect(250, 220, 50, 50-n);
emcu 0:ef97dc9b062e 147 //lcd.DrawRect(250, 220, 50-n, 50-n);
emcu 0:ef97dc9b062e 148 }
emcu 0:ef97dc9b062e 149 */
emcu 0:ef97dc9b062e 150
emcu 0:ef97dc9b062e 151 Count=0;
emcu 0:ef97dc9b062e 152
emcu 0:ef97dc9b062e 153 // Get the touch position for Start Timer
emcu 0:ef97dc9b062e 154 for (idx = 0; idx < TS_State.touchDetected; idx++)
emcu 0:ef97dc9b062e 155 {
emcu 0:ef97dc9b062e 156 x = TS_State.touchX[idx];
emcu 0:ef97dc9b062e 157 y = TS_State.touchY[idx];
emcu 0:ef97dc9b062e 158 if ((x>260 & x<300) && (y>250 & y<280))
emcu 0:ef97dc9b062e 159 {
emcu 0:ef97dc9b062e 160 lcd.Clear(LCD_COLOR_BLACK);
emcu 0:ef97dc9b062e 161 lcd.SetFont(&Font24);
emcu 0:ef97dc9b062e 162 lcd.SetBackColor(LCD_COLOR_BLACK);
emcu 0:ef97dc9b062e 163 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 164 sprintf((char*)text, " Minutes that remain: %d ", min);
emcu 0:ef97dc9b062e 165 lcd.DisplayStringAt(xpos, LINE(5), (uint8_t *)&text, LEFT_MODE);
emcu 0:ef97dc9b062e 166 Logo();
emcu 0:ef97dc9b062e 167
emcu 0:ef97dc9b062e 168 tcount=min;
emcu 0:ef97dc9b062e 169 tcount=tcount*60;
emcu 0:ef97dc9b062e 170 Mem_min=min;
emcu 0:ef97dc9b062e 171 Minuti=0;
emcu 0:ef97dc9b062e 172 for (n=0; n<tcount; n++)
emcu 0:ef97dc9b062e 173 {
emcu 0:ef97dc9b062e 174 wait(1); // 60 == 1min
emcu 0:ef97dc9b062e 175
emcu 0:ef97dc9b062e 176 // Show an * for highlight that the program is running
emcu 0:ef97dc9b062e 177 Count++;
emcu 0:ef97dc9b062e 178 if (Count == 1)
emcu 0:ef97dc9b062e 179 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)"*", CENTER_MODE);
emcu 0:ef97dc9b062e 180 if (Count == 2)
emcu 0:ef97dc9b062e 181 {
emcu 0:ef97dc9b062e 182 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 183 Count=0;
emcu 0:ef97dc9b062e 184 }
emcu 0:ef97dc9b062e 185
emcu 0:ef97dc9b062e 186 // Counter for minutes
emcu 0:ef97dc9b062e 187 Minuti++;
emcu 0:ef97dc9b062e 188 if (Minuti==60)
emcu 0:ef97dc9b062e 189 {
emcu 0:ef97dc9b062e 190 min--;
emcu 0:ef97dc9b062e 191 Minuti=0;
emcu 0:ef97dc9b062e 192 }
emcu 0:ef97dc9b062e 193 else;
emcu 0:ef97dc9b062e 194
emcu 0:ef97dc9b062e 195 // Display the time remaining
emcu 0:ef97dc9b062e 196 if (min < 10)
emcu 0:ef97dc9b062e 197 {
emcu 0:ef97dc9b062e 198 //lcd.Clear(LCD_COLOR_RED);
emcu 0:ef97dc9b062e 199 lcd.SetFont(&Font24);
emcu 0:ef97dc9b062e 200 lcd.SetBackColor(LCD_COLOR_RED);
emcu 0:ef97dc9b062e 201 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 202 sprintf((char*)text, " Minutes that remain: %d ", min);
emcu 0:ef97dc9b062e 203 lcd.DisplayStringAt(xpos, LINE(5), (uint8_t *)&text, LEFT_MODE);
emcu 0:ef97dc9b062e 204 Logo();
emcu 0:ef97dc9b062e 205 }
emcu 0:ef97dc9b062e 206 else
emcu 0:ef97dc9b062e 207 {
emcu 0:ef97dc9b062e 208 //lcd.Clear(LCD_COLOR_BLACK);
emcu 0:ef97dc9b062e 209 lcd.SetFont(&Font24);
emcu 0:ef97dc9b062e 210 lcd.SetBackColor(LCD_COLOR_BLACK);
emcu 0:ef97dc9b062e 211 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 212 sprintf((char*)text, " Minutes that remain: %d ", min);
emcu 0:ef97dc9b062e 213 lcd.DisplayStringAt(xpos, LINE(5), (uint8_t *)&text, LEFT_MODE);
emcu 0:ef97dc9b062e 214 Logo();
emcu 0:ef97dc9b062e 215 }
emcu 0:ef97dc9b062e 216 }
emcu 0:ef97dc9b062e 217
emcu 0:ef97dc9b062e 218 min=Mem_min;
emcu 0:ef97dc9b062e 219 lcd.SetFont(&Font24);
emcu 0:ef97dc9b062e 220
emcu 0:ef97dc9b062e 221 lcd.Clear(LCD_COLOR_BLACK);
emcu 0:ef97dc9b062e 222 lcd.SetFont(&Font24);
emcu 0:ef97dc9b062e 223
emcu 0:ef97dc9b062e 224 // Highlight the end of time
emcu 0:ef97dc9b062e 225
emcu 0:ef97dc9b062e 226 // Waiting Touch the screen for restart the program
emcu 0:ef97dc9b062e 227 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 228 while(TS_State.touchDetected == 0)
emcu 0:ef97dc9b062e 229 {
emcu 0:ef97dc9b062e 230 lcd.Clear(LCD_COLOR_RED);
emcu 0:ef97dc9b062e 231 lcd.SetBackColor(LCD_COLOR_RED);
emcu 0:ef97dc9b062e 232 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 233 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 234 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" END time... ", CENTER_MODE);
emcu 0:ef97dc9b062e 235 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)" STOP the presentation !!! ", CENTER_MODE);
emcu 0:ef97dc9b062e 236 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 237 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 238 lcd.DisplayStringAt(0, LINE(7), (uint8_t *)" Touch screen to restart ", CENTER_MODE);
emcu 0:ef97dc9b062e 239 lcd.DisplayStringAt(0, LINE(8), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 240 wait(0.5);
emcu 0:ef97dc9b062e 241
emcu 0:ef97dc9b062e 242 lcd.Clear(LCD_COLOR_BLUE);
emcu 0:ef97dc9b062e 243 lcd.SetBackColor(LCD_COLOR_BLUE);
emcu 0:ef97dc9b062e 244 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 245 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 246 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" END time... ", CENTER_MODE);
emcu 0:ef97dc9b062e 247 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)" STOP the presentation !!! ", CENTER_MODE);
emcu 0:ef97dc9b062e 248 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 249 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 250 lcd.DisplayStringAt(0, LINE(7), (uint8_t *)" Touch screen to restart ", CENTER_MODE);
emcu 0:ef97dc9b062e 251 lcd.DisplayStringAt(0, LINE(8), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 252 wait(0.5);
emcu 0:ef97dc9b062e 253
emcu 0:ef97dc9b062e 254 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 255 }
emcu 0:ef97dc9b062e 256
emcu 0:ef97dc9b062e 257
emcu 0:ef97dc9b062e 258
emcu 0:ef97dc9b062e 259 lcd.Clear(LCD_COLOR_BLACK);
emcu 0:ef97dc9b062e 260 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 261 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 262 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 263 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)" Remove your finger from ", CENTER_MODE);
emcu 0:ef97dc9b062e 264 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)" the screen ", CENTER_MODE);
emcu 0:ef97dc9b062e 265 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 266 lcd.DisplayStringAt(0, LINE(7), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 267 lcd.DisplayStringAt(0, LINE(8), (uint8_t *)" ", CENTER_MODE);
emcu 0:ef97dc9b062e 268 // Whait remove touch
emcu 0:ef97dc9b062e 269 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 270 while(TS_State.touchDetected == 1)
emcu 0:ef97dc9b062e 271 {
emcu 0:ef97dc9b062e 272 ts.GetState(&TS_State);
emcu 0:ef97dc9b062e 273 }
emcu 0:ef97dc9b062e 274 lcd.Clear(LCD_COLOR_BLACK);
emcu 0:ef97dc9b062e 275
emcu 0:ef97dc9b062e 276 // goto ReStart;
emcu 0:ef97dc9b062e 277 }
emcu 0:ef97dc9b062e 278 }
emcu 0:ef97dc9b062e 279 }
emcu 0:ef97dc9b062e 280 }
emcu 0:ef97dc9b062e 281
emcu 0:ef97dc9b062e 282 void Logo(void)
emcu 0:ef97dc9b062e 283 {
emcu 0:ef97dc9b062e 284 lcd.SetFont(&Font16);
emcu 0:ef97dc9b062e 285 lcd.SetBackColor(LCD_COLOR_BLACK);
emcu 0:ef97dc9b062e 286 lcd.SetTextColor(LCD_COLOR_WHITE);
emcu 0:ef97dc9b062e 287 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)" By: www.emcu.it", LEFT_MODE);
emcu 0:ef97dc9b062e 288 lcd.SetFont(&Font24);
emcu 0:ef97dc9b062e 289 }
emcu 0:ef97dc9b062e 290
emcu 0:ef97dc9b062e 291 void RedBox(int x, int y, int larg, int alt)
emcu 0:ef97dc9b062e 292 {
emcu 0:ef97dc9b062e 293 // Draw the RED box that indicate the area to touch for start Timer
emcu 0:ef97dc9b062e 294 lcd.SetTextColor(LCD_COLOR_RED);
emcu 0:ef97dc9b062e 295 lcd.FillRect(x, y, larg, alt);
emcu 0:ef97dc9b062e 296 }
emcu 0:ef97dc9b062e 297