Updated with option to return from BP screen to main screen, resolved screen navigation issues

Dependencies:   SDFileSystem TFTLCD_8bit ds3231 program mbed

Fork of poc_dis_5 by SenseSemi

Committer:
nikitateggi
Date:
Mon Jan 30 07:45:41 2017 +0000
Revision:
1:8316c23ec6b9
Parent:
0:c47fb0c1bbf6
Child:
3:9a06c2bed650
POC code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nikitateggi 0:c47fb0c1bbf6 1 #include "mbed.h"
nikitateggi 0:c47fb0c1bbf6 2 #include "ili9325.h"
nikitateggi 0:c47fb0c1bbf6 3 #include "lcd_base.h"
nikitateggi 0:c47fb0c1bbf6 4 #include "display_modules.h"
nikitateggi 0:c47fb0c1bbf6 5 #include "touch_modules.h"
nikitateggi 0:c47fb0c1bbf6 6 InterruptIn Touch_D(PTD6);
nikitateggi 0:c47fb0c1bbf6 7 int i;
nikitateggi 0:c47fb0c1bbf6 8 unsigned int xt;
nikitateggi 0:c47fb0c1bbf6 9 unsigned int yt;
nikitateggi 1:8316c23ec6b9 10 Serial kc(USBTX, USBRX);
nikitateggi 0:c47fb0c1bbf6 11
nikitateggi 0:c47fb0c1bbf6 12
nikitateggi 0:c47fb0c1bbf6 13 void touch1() //determining the touch co-ordinates
nikitateggi 0:c47fb0c1bbf6 14 {
nikitateggi 0:c47fb0c1bbf6 15 xt = (X_MAX*readTouchX()/TOTAL1);
nikitateggi 0:c47fb0c1bbf6 16 yt = (Y_MAX*readTouchY()/TOTAL1);
nikitateggi 1:8316c23ec6b9 17 kc.printf("%d\n", xt);
nikitateggi 1:8316c23ec6b9 18 kc.printf("%d\n", yt);
nikitateggi 1:8316c23ec6b9 19
nikitateggi 0:c47fb0c1bbf6 20 }
nikitateggi 0:c47fb0c1bbf6 21
nikitateggi 0:c47fb0c1bbf6 22
nikitateggi 0:c47fb0c1bbf6 23 void detect_touch() // detect the touch //debounce
nikitateggi 0:c47fb0c1bbf6 24 {
nikitateggi 0:c47fb0c1bbf6 25
nikitateggi 0:c47fb0c1bbf6 26 while(i==1)
nikitateggi 0:c47fb0c1bbf6 27 {
nikitateggi 0:c47fb0c1bbf6 28 while(Touch_D)//touch detection
nikitateggi 0:c47fb0c1bbf6 29 {
nikitateggi 0:c47fb0c1bbf6 30 wait_ms(200); ///wait for debounce check
nikitateggi 0:c47fb0c1bbf6 31 if (Touch_D)
nikitateggi 0:c47fb0c1bbf6 32 {
nikitateggi 0:c47fb0c1bbf6 33 Touch_D.fall(&touch1); //determine the touch co-ordinates
nikitateggi 0:c47fb0c1bbf6 34 break;
nikitateggi 0:c47fb0c1bbf6 35 }
nikitateggi 0:c47fb0c1bbf6 36 DisableTouch();
nikitateggi 1:8316c23ec6b9 37 //kc.printf("touch");
nikitateggi 1:8316c23ec6b9 38
nikitateggi 0:c47fb0c1bbf6 39 }
nikitateggi 0:c47fb0c1bbf6 40 }
nikitateggi 1:8316c23ec6b9 41
nikitateggi 1:8316c23ec6b9 42
nikitateggi 0:c47fb0c1bbf6 43 }
nikitateggi 0:c47fb0c1bbf6 44
nikitateggi 0:c47fb0c1bbf6 45
nikitateggi 0:c47fb0c1bbf6 46
nikitateggi 0:c47fb0c1bbf6 47 unsigned char touch_main() //determining the touch for home screen
nikitateggi 0:c47fb0c1bbf6 48 {
nikitateggi 0:c47fb0c1bbf6 49
nikitateggi 0:c47fb0c1bbf6 50 unsigned char state;
nikitateggi 0:c47fb0c1bbf6 51
nikitateggi 1:8316c23ec6b9 52 if ( ((xt >=70) && (xt<=170)) && ( (yt>= 140) && (yt<= 195) ) ) // system configuration
nikitateggi 1:8316c23ec6b9 53 {
nikitateggi 1:8316c23ec6b9 54
nikitateggi 1:8316c23ec6b9 55 state=2;
nikitateggi 1:8316c23ec6b9 56 }
nikitateggi 1:8316c23ec6b9 57
nikitateggi 1:8316c23ec6b9 58 else if ( ((xt >=70) && (xt<=170)) && ( (yt>=80) && (yt<=140) ) ) // test
nikitateggi 1:8316c23ec6b9 59 {
nikitateggi 1:8316c23ec6b9 60 state=3;
nikitateggi 1:8316c23ec6b9 61 }
nikitateggi 1:8316c23ec6b9 62 else
nikitateggi 1:8316c23ec6b9 63 state=10;
nikitateggi 1:8316c23ec6b9 64
nikitateggi 1:8316c23ec6b9 65 return state;
nikitateggi 1:8316c23ec6b9 66 }
nikitateggi 1:8316c23ec6b9 67
nikitateggi 1:8316c23ec6b9 68
nikitateggi 1:8316c23ec6b9 69 unsigned char touch_main_1() //determining the touch for home screen
nikitateggi 1:8316c23ec6b9 70 {
nikitateggi 1:8316c23ec6b9 71
nikitateggi 1:8316c23ec6b9 72 unsigned char state;
nikitateggi 1:8316c23ec6b9 73
nikitateggi 1:8316c23ec6b9 74 if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) // ble
nikitateggi 1:8316c23ec6b9 75 {
nikitateggi 1:8316c23ec6b9 76
nikitateggi 1:8316c23ec6b9 77 // state=3;
nikitateggi 1:8316c23ec6b9 78 }
nikitateggi 1:8316c23ec6b9 79
nikitateggi 1:8316c23ec6b9 80 else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) ) // erase
nikitateggi 1:8316c23ec6b9 81 {
nikitateggi 1:8316c23ec6b9 82 // state=4;
nikitateggi 1:8316c23ec6b9 83
nikitateggi 1:8316c23ec6b9 84
nikitateggi 1:8316c23ec6b9 85 }
nikitateggi 1:8316c23ec6b9 86 else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) // file
nikitateggi 1:8316c23ec6b9 87 {
nikitateggi 1:8316c23ec6b9 88 // state=5;
nikitateggi 1:8316c23ec6b9 89
nikitateggi 1:8316c23ec6b9 90 }
nikitateggi 1:8316c23ec6b9 91 else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) // home
nikitateggi 1:8316c23ec6b9 92 {
nikitateggi 1:8316c23ec6b9 93 //state=6;
nikitateggi 1:8316c23ec6b9 94
nikitateggi 1:8316c23ec6b9 95 }
nikitateggi 1:8316c23ec6b9 96 else
nikitateggi 1:8316c23ec6b9 97 state=10;
nikitateggi 1:8316c23ec6b9 98
nikitateggi 1:8316c23ec6b9 99 return state;
nikitateggi 1:8316c23ec6b9 100 }
nikitateggi 1:8316c23ec6b9 101
nikitateggi 1:8316c23ec6b9 102 unsigned char touch_main_2() //determining the touch for home screen
nikitateggi 1:8316c23ec6b9 103 {
nikitateggi 1:8316c23ec6b9 104
nikitateggi 1:8316c23ec6b9 105 unsigned char state;
nikitateggi 1:8316c23ec6b9 106
nikitateggi 0:c47fb0c1bbf6 107 if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) // GLC
nikitateggi 0:c47fb0c1bbf6 108 {
nikitateggi 0:c47fb0c1bbf6 109
nikitateggi 1:8316c23ec6b9 110 state=4;
nikitateggi 0:c47fb0c1bbf6 111 }
nikitateggi 0:c47fb0c1bbf6 112
nikitateggi 0:c47fb0c1bbf6 113 else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) ) // ECG
nikitateggi 0:c47fb0c1bbf6 114 {
nikitateggi 1:8316c23ec6b9 115 state=5;
nikitateggi 0:c47fb0c1bbf6 116
nikitateggi 0:c47fb0c1bbf6 117
nikitateggi 0:c47fb0c1bbf6 118 }
nikitateggi 0:c47fb0c1bbf6 119 else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) // BP
nikitateggi 0:c47fb0c1bbf6 120 {
nikitateggi 1:8316c23ec6b9 121 //state=5;
nikitateggi 0:c47fb0c1bbf6 122
nikitateggi 0:c47fb0c1bbf6 123 }
nikitateggi 1:8316c23ec6b9 124 else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) // Home
nikitateggi 0:c47fb0c1bbf6 125 {
nikitateggi 1:8316c23ec6b9 126 state=1;
nikitateggi 0:c47fb0c1bbf6 127
nikitateggi 0:c47fb0c1bbf6 128 }
nikitateggi 0:c47fb0c1bbf6 129
nikitateggi 1:8316c23ec6b9 130 else
nikitateggi 1:8316c23ec6b9 131 state=10;
nikitateggi 1:8316c23ec6b9 132
nikitateggi 0:c47fb0c1bbf6 133 return state;
nikitateggi 0:c47fb0c1bbf6 134 }
nikitateggi 1:8316c23ec6b9 135
nikitateggi 1:8316c23ec6b9 136
nikitateggi 1:8316c23ec6b9 137
nikitateggi 1:8316c23ec6b9 138
nikitateggi 1:8316c23ec6b9 139
nikitateggi 0:c47fb0c1bbf6 140
nikitateggi 0:c47fb0c1bbf6 141 unsigned char touch_ecg() // determining the touch for ecg screen
nikitateggi 0:c47fb0c1bbf6 142 {
nikitateggi 0:c47fb0c1bbf6 143
nikitateggi 0:c47fb0c1bbf6 144 unsigned char state;
nikitateggi 1:8316c23ec6b9 145 if ( ((xt >=70) && (xt<=170)) && ( (yt>= 140) && (yt<= 195) ) ) // GLC
nikitateggi 1:8316c23ec6b9 146 {
nikitateggi 1:8316c23ec6b9 147
nikitateggi 1:8316c23ec6b9 148 state=8;
nikitateggi 1:8316c23ec6b9 149 }
nikitateggi 1:8316c23ec6b9 150
nikitateggi 1:8316c23ec6b9 151 else if ( ((xt >=70) && (xt<=170)) && ( (yt>=90) && (yt<=140) ) ) // ECG
nikitateggi 1:8316c23ec6b9 152 {
nikitateggi 1:8316c23ec6b9 153 // state=2;
nikitateggi 1:8316c23ec6b9 154 }
nikitateggi 1:8316c23ec6b9 155 else
nikitateggi 1:8316c23ec6b9 156 state=10;
nikitateggi 1:8316c23ec6b9 157
nikitateggi 0:c47fb0c1bbf6 158 return state;
nikitateggi 0:c47fb0c1bbf6 159 }
nikitateggi 0:c47fb0c1bbf6 160
nikitateggi 0:c47fb0c1bbf6 161
nikitateggi 1:8316c23ec6b9 162 unsigned char touch_ret() // determining the touch for ecg screen
nikitateggi 1:8316c23ec6b9 163 {
nikitateggi 1:8316c23ec6b9 164
nikitateggi 1:8316c23ec6b9 165 unsigned char state;
nikitateggi 1:8316c23ec6b9 166
nikitateggi 1:8316c23ec6b9 167
nikitateggi 1:8316c23ec6b9 168 if ( ((xt >=70) && (xt<=170)) && ( (yt>=85) && (yt<=140) ) ) // ECG
nikitateggi 1:8316c23ec6b9 169 {
nikitateggi 1:8316c23ec6b9 170 state=3;
nikitateggi 1:8316c23ec6b9 171 }
nikitateggi 1:8316c23ec6b9 172
nikitateggi 1:8316c23ec6b9 173 else
nikitateggi 1:8316c23ec6b9 174 state=10;
nikitateggi 1:8316c23ec6b9 175 return state;
nikitateggi 1:8316c23ec6b9 176 }
nikitateggi 1:8316c23ec6b9 177
nikitateggi 1:8316c23ec6b9 178
nikitateggi 1:8316c23ec6b9 179
nikitateggi 0:c47fb0c1bbf6 180
nikitateggi 0:c47fb0c1bbf6 181 unsigned char touch_bp() // //determining the touch for bp screen
nikitateggi 0:c47fb0c1bbf6 182
nikitateggi 0:c47fb0c1bbf6 183 {
nikitateggi 0:c47fb0c1bbf6 184 unsigned char state;
nikitateggi 0:c47fb0c1bbf6 185 if ( ((xt >=28) && (xt<=125)) && ( (yt>= 225) && (yt<= 285) ) )
nikitateggi 0:c47fb0c1bbf6 186 {
nikitateggi 0:c47fb0c1bbf6 187 state=1;
nikitateggi 0:c47fb0c1bbf6 188
nikitateggi 0:c47fb0c1bbf6 189 }
nikitateggi 0:c47fb0c1bbf6 190
nikitateggi 0:c47fb0c1bbf6 191 else if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) )
nikitateggi 0:c47fb0c1bbf6 192 {
nikitateggi 0:c47fb0c1bbf6 193
nikitateggi 0:c47fb0c1bbf6 194 state=2;
nikitateggi 0:c47fb0c1bbf6 195
nikitateggi 0:c47fb0c1bbf6 196 }
nikitateggi 0:c47fb0c1bbf6 197
nikitateggi 0:c47fb0c1bbf6 198 else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) )
nikitateggi 0:c47fb0c1bbf6 199 {
nikitateggi 0:c47fb0c1bbf6 200 state=3;
nikitateggi 0:c47fb0c1bbf6 201
nikitateggi 0:c47fb0c1bbf6 202
nikitateggi 0:c47fb0c1bbf6 203 }
nikitateggi 0:c47fb0c1bbf6 204 else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) )
nikitateggi 0:c47fb0c1bbf6 205 {
nikitateggi 0:c47fb0c1bbf6 206 state=4;
nikitateggi 0:c47fb0c1bbf6 207
nikitateggi 0:c47fb0c1bbf6 208 }
nikitateggi 0:c47fb0c1bbf6 209 else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) )
nikitateggi 0:c47fb0c1bbf6 210 {
nikitateggi 0:c47fb0c1bbf6 211 state=5;
nikitateggi 0:c47fb0c1bbf6 212
nikitateggi 0:c47fb0c1bbf6 213 }
nikitateggi 1:8316c23ec6b9 214 else
nikitateggi 1:8316c23ec6b9 215 state=10;
nikitateggi 0:c47fb0c1bbf6 216
nikitateggi 0:c47fb0c1bbf6 217 return state;
nikitateggi 0:c47fb0c1bbf6 218 }
nikitateggi 0:c47fb0c1bbf6 219
nikitateggi 0:c47fb0c1bbf6 220
nikitateggi 0:c47fb0c1bbf6 221
nikitateggi 0:c47fb0c1bbf6 222 unsigned char touch_glc() ////determining the touch for home screen
nikitateggi 0:c47fb0c1bbf6 223 {
nikitateggi 0:c47fb0c1bbf6 224 unsigned char state;
nikitateggi 1:8316c23ec6b9 225
nikitateggi 1:8316c23ec6b9 226 if ( ((xt >=70) && (xt<=170)) && ( (yt>= 140) && (yt<= 195) ) ) // GLC
nikitateggi 0:c47fb0c1bbf6 227 {
nikitateggi 0:c47fb0c1bbf6 228
nikitateggi 1:8316c23ec6b9 229 state=7;
nikitateggi 0:c47fb0c1bbf6 230 }
nikitateggi 0:c47fb0c1bbf6 231
nikitateggi 1:8316c23ec6b9 232 else if ( ((xt >=70) && (xt<=170)) && ( (yt>=85) && (yt<=140) ) ) // ECG
nikitateggi 0:c47fb0c1bbf6 233 {
nikitateggi 1:8316c23ec6b9 234 // state=2;
nikitateggi 1:8316c23ec6b9 235 }
nikitateggi 1:8316c23ec6b9 236 else
nikitateggi 1:8316c23ec6b9 237 state=10;
nikitateggi 0:c47fb0c1bbf6 238
nikitateggi 0:c47fb0c1bbf6 239 return state;
nikitateggi 0:c47fb0c1bbf6 240 }
nikitateggi 0:c47fb0c1bbf6 241
nikitateggi 1:8316c23ec6b9 242
nikitateggi 1:8316c23ec6b9 243
nikitateggi 1:8316c23ec6b9 244 unsigned char touch_again() //determining the touch for home screen
nikitateggi 1:8316c23ec6b9 245 {
nikitateggi 1:8316c23ec6b9 246
nikitateggi 1:8316c23ec6b9 247 unsigned char state;
nikitateggi 1:8316c23ec6b9 248
nikitateggi 1:8316c23ec6b9 249 if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) // BP
nikitateggi 1:8316c23ec6b9 250 {
nikitateggi 1:8316c23ec6b9 251 state=8;
nikitateggi 1:8316c23ec6b9 252
nikitateggi 1:8316c23ec6b9 253 }
nikitateggi 1:8316c23ec6b9 254 else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) // SET
nikitateggi 1:8316c23ec6b9 255 {
nikitateggi 1:8316c23ec6b9 256 state=3;
nikitateggi 1:8316c23ec6b9 257
nikitateggi 1:8316c23ec6b9 258 }
nikitateggi 1:8316c23ec6b9 259 else
nikitateggi 1:8316c23ec6b9 260 state=10;
nikitateggi 1:8316c23ec6b9 261 return state;
nikitateggi 1:8316c23ec6b9 262 }
nikitateggi 1:8316c23ec6b9 263
nikitateggi 1:8316c23ec6b9 264
nikitateggi 1:8316c23ec6b9 265
nikitateggi 1:8316c23ec6b9 266
nikitateggi 1:8316c23ec6b9 267
nikitateggi 0:c47fb0c1bbf6 268
nikitateggi 0:c47fb0c1bbf6 269 int readTouchY(void) {
nikitateggi 0:c47fb0c1bbf6 270 DigitalOut YD(PTD6);
nikitateggi 0:c47fb0c1bbf6 271 DigitalIn XL(PTD7);
nikitateggi 0:c47fb0c1bbf6 272 DigitalOut YU(PTC0);
nikitateggi 0:c47fb0c1bbf6 273 YU = 1;
nikitateggi 0:c47fb0c1bbf6 274 YD = 0;
nikitateggi 0:c47fb0c1bbf6 275 AnalogIn XR(PTB0);
nikitateggi 0:c47fb0c1bbf6 276 XL.mode(PullNone);
nikitateggi 0:c47fb0c1bbf6 277 return XR.read_u16();
nikitateggi 0:c47fb0c1bbf6 278 }
nikitateggi 0:c47fb0c1bbf6 279
nikitateggi 0:c47fb0c1bbf6 280 int readTouchX(void) {
nikitateggi 0:c47fb0c1bbf6 281 DigitalOut XR(PTB0);
nikitateggi 0:c47fb0c1bbf6 282 DigitalIn YD(PTD6);
nikitateggi 0:c47fb0c1bbf6 283 DigitalOut XL(PTD7);
nikitateggi 0:c47fb0c1bbf6 284
nikitateggi 0:c47fb0c1bbf6 285 XR = 1;
nikitateggi 0:c47fb0c1bbf6 286 XL = 0;
nikitateggi 0:c47fb0c1bbf6 287 AnalogIn YU(PTC0);
nikitateggi 0:c47fb0c1bbf6 288 YD.mode(PullNone);
nikitateggi 0:c47fb0c1bbf6 289 return YU.read_u16();
nikitateggi 0:c47fb0c1bbf6 290 }
nikitateggi 0:c47fb0c1bbf6 291
nikitateggi 0:c47fb0c1bbf6 292 void EnableTouch(void){
nikitateggi 0:c47fb0c1bbf6 293
nikitateggi 0:c47fb0c1bbf6 294 DigitalIn YD(PTD6);
nikitateggi 0:c47fb0c1bbf6 295 DigitalOut XL(PTD7);
nikitateggi 0:c47fb0c1bbf6 296 DigitalIn YU(PTC0);
nikitateggi 0:c47fb0c1bbf6 297 DigitalIn XR(PTB0);
nikitateggi 0:c47fb0c1bbf6 298 XL=0;
nikitateggi 0:c47fb0c1bbf6 299 YD.mode(PullUp);
nikitateggi 0:c47fb0c1bbf6 300 YU.mode(PullNone);
nikitateggi 0:c47fb0c1bbf6 301 XR.mode(PullNone);
nikitateggi 0:c47fb0c1bbf6 302 i=1;
nikitateggi 0:c47fb0c1bbf6 303 Touch_D.fall(&touch1);
nikitateggi 0:c47fb0c1bbf6 304 Touch_D.enable_irq();
nikitateggi 0:c47fb0c1bbf6 305
nikitateggi 0:c47fb0c1bbf6 306 }
nikitateggi 0:c47fb0c1bbf6 307 void DisableTouch (void){
nikitateggi 0:c47fb0c1bbf6 308 Touch_D.disable_irq();
nikitateggi 0:c47fb0c1bbf6 309 i=0;
nikitateggi 0:c47fb0c1bbf6 310 DigitalOut YD(PTD6);
nikitateggi 0:c47fb0c1bbf6 311 DigitalOut XL(PTD7);
nikitateggi 0:c47fb0c1bbf6 312 DigitalOut YU(PTC0);
nikitateggi 0:c47fb0c1bbf6 313 DigitalOut XR(PTB0);
nikitateggi 0:c47fb0c1bbf6 314 }
nikitateggi 0:c47fb0c1bbf6 315
nikitateggi 0:c47fb0c1bbf6 316
nikitateggi 0:c47fb0c1bbf6 317
nikitateggi 0:c47fb0c1bbf6 318