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:
Fri Feb 10 10:39:13 2017 +0000
Revision:
3:9a06c2bed650
Parent:
1:8316c23ec6b9
Child:
4:6bd81bb1790d
Peak detect to 400 samples

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