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:
Tue Dec 27 10:30:48 2016 +0000
Revision:
0:c47fb0c1bbf6
Child:
1:8316c23ec6b9
poc display

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 0:c47fb0c1bbf6 10
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 0:c47fb0c1bbf6 17 }
nikitateggi 0:c47fb0c1bbf6 18
nikitateggi 0:c47fb0c1bbf6 19
nikitateggi 0:c47fb0c1bbf6 20 void detect_touch() // detect the touch //debounce
nikitateggi 0:c47fb0c1bbf6 21 {
nikitateggi 0:c47fb0c1bbf6 22
nikitateggi 0:c47fb0c1bbf6 23 while(i==1)
nikitateggi 0:c47fb0c1bbf6 24 {
nikitateggi 0:c47fb0c1bbf6 25 while(Touch_D)//touch detection
nikitateggi 0:c47fb0c1bbf6 26 {
nikitateggi 0:c47fb0c1bbf6 27 wait_ms(200); ///wait for debounce check
nikitateggi 0:c47fb0c1bbf6 28 if (Touch_D)
nikitateggi 0:c47fb0c1bbf6 29 {
nikitateggi 0:c47fb0c1bbf6 30 Touch_D.fall(&touch1); //determine the touch co-ordinates
nikitateggi 0:c47fb0c1bbf6 31 break;
nikitateggi 0:c47fb0c1bbf6 32 }
nikitateggi 0:c47fb0c1bbf6 33 DisableTouch();
nikitateggi 0:c47fb0c1bbf6 34
nikitateggi 0:c47fb0c1bbf6 35 }
nikitateggi 0:c47fb0c1bbf6 36 }
nikitateggi 0:c47fb0c1bbf6 37 }
nikitateggi 0:c47fb0c1bbf6 38
nikitateggi 0:c47fb0c1bbf6 39
nikitateggi 0:c47fb0c1bbf6 40
nikitateggi 0:c47fb0c1bbf6 41 unsigned char touch_main() //determining the touch for home screen
nikitateggi 0:c47fb0c1bbf6 42 {
nikitateggi 0:c47fb0c1bbf6 43
nikitateggi 0:c47fb0c1bbf6 44 unsigned char state;
nikitateggi 0:c47fb0c1bbf6 45
nikitateggi 0:c47fb0c1bbf6 46 if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) // GLC
nikitateggi 0:c47fb0c1bbf6 47 {
nikitateggi 0:c47fb0c1bbf6 48
nikitateggi 0:c47fb0c1bbf6 49 state=1;
nikitateggi 0:c47fb0c1bbf6 50 }
nikitateggi 0:c47fb0c1bbf6 51
nikitateggi 0:c47fb0c1bbf6 52 else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) ) // ECG
nikitateggi 0:c47fb0c1bbf6 53 {
nikitateggi 0:c47fb0c1bbf6 54 state=2;
nikitateggi 0:c47fb0c1bbf6 55
nikitateggi 0:c47fb0c1bbf6 56
nikitateggi 0:c47fb0c1bbf6 57 }
nikitateggi 0:c47fb0c1bbf6 58 else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) // BP
nikitateggi 0:c47fb0c1bbf6 59 {
nikitateggi 0:c47fb0c1bbf6 60 state=3;
nikitateggi 0:c47fb0c1bbf6 61
nikitateggi 0:c47fb0c1bbf6 62 }
nikitateggi 0:c47fb0c1bbf6 63 else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) // SET
nikitateggi 0:c47fb0c1bbf6 64 {
nikitateggi 0:c47fb0c1bbf6 65 state=4;
nikitateggi 0:c47fb0c1bbf6 66
nikitateggi 0:c47fb0c1bbf6 67 }
nikitateggi 0:c47fb0c1bbf6 68
nikitateggi 0:c47fb0c1bbf6 69 return state;
nikitateggi 0:c47fb0c1bbf6 70 }
nikitateggi 0:c47fb0c1bbf6 71
nikitateggi 0:c47fb0c1bbf6 72
nikitateggi 0:c47fb0c1bbf6 73
nikitateggi 0:c47fb0c1bbf6 74 unsigned char touch_ecg() // determining the touch for ecg screen
nikitateggi 0:c47fb0c1bbf6 75 {
nikitateggi 0:c47fb0c1bbf6 76
nikitateggi 0:c47fb0c1bbf6 77 unsigned char state;
nikitateggi 0:c47fb0c1bbf6 78 if ( ((xt >=28) && (xt<=125)) && ( (yt>= 225) && (yt<= 285) ) ) // home screen
nikitateggi 0:c47fb0c1bbf6 79 {
nikitateggi 0:c47fb0c1bbf6 80
nikitateggi 0:c47fb0c1bbf6 81 state=5;
nikitateggi 0:c47fb0c1bbf6 82 }
nikitateggi 0:c47fb0c1bbf6 83
nikitateggi 0:c47fb0c1bbf6 84 if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) // SET
nikitateggi 0:c47fb0c1bbf6 85 {
nikitateggi 0:c47fb0c1bbf6 86 state=6;
nikitateggi 0:c47fb0c1bbf6 87
nikitateggi 0:c47fb0c1bbf6 88 }
nikitateggi 0:c47fb0c1bbf6 89
nikitateggi 0:c47fb0c1bbf6 90 else if ( ((xt >=150) && (xt<=195)) && ( (yt>= 80) && (yt<= 190) ) ) // start
nikitateggi 0:c47fb0c1bbf6 91 {
nikitateggi 0:c47fb0c1bbf6 92 state=7;
nikitateggi 0:c47fb0c1bbf6 93 }
nikitateggi 0:c47fb0c1bbf6 94
nikitateggi 0:c47fb0c1bbf6 95 else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) // history
nikitateggi 0:c47fb0c1bbf6 96 {
nikitateggi 0:c47fb0c1bbf6 97 state=8;
nikitateggi 0:c47fb0c1bbf6 98
nikitateggi 0:c47fb0c1bbf6 99 }
nikitateggi 0:c47fb0c1bbf6 100
nikitateggi 0:c47fb0c1bbf6 101 return state;
nikitateggi 0:c47fb0c1bbf6 102 }
nikitateggi 0:c47fb0c1bbf6 103
nikitateggi 0:c47fb0c1bbf6 104
nikitateggi 0:c47fb0c1bbf6 105
nikitateggi 0:c47fb0c1bbf6 106 unsigned char touch_bp() // //determining the touch for bp screen
nikitateggi 0:c47fb0c1bbf6 107
nikitateggi 0:c47fb0c1bbf6 108 {
nikitateggi 0:c47fb0c1bbf6 109 unsigned char state;
nikitateggi 0:c47fb0c1bbf6 110 if ( ((xt >=28) && (xt<=125)) && ( (yt>= 225) && (yt<= 285) ) )
nikitateggi 0:c47fb0c1bbf6 111 {
nikitateggi 0:c47fb0c1bbf6 112 state=1;
nikitateggi 0:c47fb0c1bbf6 113
nikitateggi 0:c47fb0c1bbf6 114 }
nikitateggi 0:c47fb0c1bbf6 115
nikitateggi 0:c47fb0c1bbf6 116 else if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) )
nikitateggi 0:c47fb0c1bbf6 117 {
nikitateggi 0:c47fb0c1bbf6 118
nikitateggi 0:c47fb0c1bbf6 119 state=2;
nikitateggi 0:c47fb0c1bbf6 120
nikitateggi 0:c47fb0c1bbf6 121 }
nikitateggi 0:c47fb0c1bbf6 122
nikitateggi 0:c47fb0c1bbf6 123 else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) )
nikitateggi 0:c47fb0c1bbf6 124 {
nikitateggi 0:c47fb0c1bbf6 125 state=3;
nikitateggi 0:c47fb0c1bbf6 126
nikitateggi 0:c47fb0c1bbf6 127
nikitateggi 0:c47fb0c1bbf6 128 }
nikitateggi 0:c47fb0c1bbf6 129 else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) )
nikitateggi 0:c47fb0c1bbf6 130 {
nikitateggi 0:c47fb0c1bbf6 131 state=4;
nikitateggi 0:c47fb0c1bbf6 132
nikitateggi 0:c47fb0c1bbf6 133 }
nikitateggi 0:c47fb0c1bbf6 134 else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) )
nikitateggi 0:c47fb0c1bbf6 135 {
nikitateggi 0:c47fb0c1bbf6 136 state=5;
nikitateggi 0:c47fb0c1bbf6 137
nikitateggi 0:c47fb0c1bbf6 138 }
nikitateggi 0:c47fb0c1bbf6 139
nikitateggi 0:c47fb0c1bbf6 140
nikitateggi 0:c47fb0c1bbf6 141 return state;
nikitateggi 0:c47fb0c1bbf6 142 }
nikitateggi 0:c47fb0c1bbf6 143
nikitateggi 0:c47fb0c1bbf6 144
nikitateggi 0:c47fb0c1bbf6 145
nikitateggi 0:c47fb0c1bbf6 146 unsigned char touch_glc() ////determining the touch for home screen
nikitateggi 0:c47fb0c1bbf6 147 {
nikitateggi 0:c47fb0c1bbf6 148 unsigned char state;
nikitateggi 0:c47fb0c1bbf6 149 if ( ((xt >=28) && (xt<=125)) && ( (yt>= 225) && (yt<= 285) ) )
nikitateggi 0:c47fb0c1bbf6 150 {
nikitateggi 0:c47fb0c1bbf6 151 state=1;
nikitateggi 0:c47fb0c1bbf6 152 }
nikitateggi 0:c47fb0c1bbf6 153
nikitateggi 0:c47fb0c1bbf6 154 else if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) )
nikitateggi 0:c47fb0c1bbf6 155 {
nikitateggi 0:c47fb0c1bbf6 156
nikitateggi 0:c47fb0c1bbf6 157 state=2;
nikitateggi 0:c47fb0c1bbf6 158
nikitateggi 0:c47fb0c1bbf6 159 }
nikitateggi 0:c47fb0c1bbf6 160
nikitateggi 0:c47fb0c1bbf6 161 else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) )
nikitateggi 0:c47fb0c1bbf6 162 {
nikitateggi 0:c47fb0c1bbf6 163 state=3;
nikitateggi 0:c47fb0c1bbf6 164
nikitateggi 0:c47fb0c1bbf6 165
nikitateggi 0:c47fb0c1bbf6 166 }
nikitateggi 0:c47fb0c1bbf6 167 else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) )
nikitateggi 0:c47fb0c1bbf6 168 {
nikitateggi 0:c47fb0c1bbf6 169 state=4;
nikitateggi 0:c47fb0c1bbf6 170
nikitateggi 0:c47fb0c1bbf6 171 }
nikitateggi 0:c47fb0c1bbf6 172 else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) // SET
nikitateggi 0:c47fb0c1bbf6 173 {
nikitateggi 0:c47fb0c1bbf6 174 state=5;
nikitateggi 0:c47fb0c1bbf6 175
nikitateggi 0:c47fb0c1bbf6 176 }
nikitateggi 0:c47fb0c1bbf6 177
nikitateggi 0:c47fb0c1bbf6 178
nikitateggi 0:c47fb0c1bbf6 179 return state;
nikitateggi 0:c47fb0c1bbf6 180 }
nikitateggi 0:c47fb0c1bbf6 181
nikitateggi 0:c47fb0c1bbf6 182
nikitateggi 0:c47fb0c1bbf6 183
nikitateggi 0:c47fb0c1bbf6 184
nikitateggi 0:c47fb0c1bbf6 185 int readTouchY(void) {
nikitateggi 0:c47fb0c1bbf6 186 DigitalOut YD(PTD6);
nikitateggi 0:c47fb0c1bbf6 187 DigitalIn XL(PTD7);
nikitateggi 0:c47fb0c1bbf6 188 DigitalOut YU(PTC0);
nikitateggi 0:c47fb0c1bbf6 189 YU = 1;
nikitateggi 0:c47fb0c1bbf6 190 YD = 0;
nikitateggi 0:c47fb0c1bbf6 191 AnalogIn XR(PTB0);
nikitateggi 0:c47fb0c1bbf6 192 XL.mode(PullNone);
nikitateggi 0:c47fb0c1bbf6 193 return XR.read_u16();
nikitateggi 0:c47fb0c1bbf6 194 }
nikitateggi 0:c47fb0c1bbf6 195
nikitateggi 0:c47fb0c1bbf6 196 int readTouchX(void) {
nikitateggi 0:c47fb0c1bbf6 197 DigitalOut XR(PTB0);
nikitateggi 0:c47fb0c1bbf6 198 DigitalIn YD(PTD6);
nikitateggi 0:c47fb0c1bbf6 199 DigitalOut XL(PTD7);
nikitateggi 0:c47fb0c1bbf6 200
nikitateggi 0:c47fb0c1bbf6 201 XR = 1;
nikitateggi 0:c47fb0c1bbf6 202 XL = 0;
nikitateggi 0:c47fb0c1bbf6 203 AnalogIn YU(PTC0);
nikitateggi 0:c47fb0c1bbf6 204 YD.mode(PullNone);
nikitateggi 0:c47fb0c1bbf6 205 return YU.read_u16();
nikitateggi 0:c47fb0c1bbf6 206 }
nikitateggi 0:c47fb0c1bbf6 207
nikitateggi 0:c47fb0c1bbf6 208 void EnableTouch(void){
nikitateggi 0:c47fb0c1bbf6 209
nikitateggi 0:c47fb0c1bbf6 210 DigitalIn YD(PTD6);
nikitateggi 0:c47fb0c1bbf6 211 DigitalOut XL(PTD7);
nikitateggi 0:c47fb0c1bbf6 212 DigitalIn YU(PTC0);
nikitateggi 0:c47fb0c1bbf6 213 DigitalIn XR(PTB0);
nikitateggi 0:c47fb0c1bbf6 214 XL=0;
nikitateggi 0:c47fb0c1bbf6 215 YD.mode(PullUp);
nikitateggi 0:c47fb0c1bbf6 216 YU.mode(PullNone);
nikitateggi 0:c47fb0c1bbf6 217 XR.mode(PullNone);
nikitateggi 0:c47fb0c1bbf6 218 i=1;
nikitateggi 0:c47fb0c1bbf6 219 Touch_D.fall(&touch1);
nikitateggi 0:c47fb0c1bbf6 220 Touch_D.enable_irq();
nikitateggi 0:c47fb0c1bbf6 221
nikitateggi 0:c47fb0c1bbf6 222 }
nikitateggi 0:c47fb0c1bbf6 223 void DisableTouch (void){
nikitateggi 0:c47fb0c1bbf6 224 Touch_D.disable_irq();
nikitateggi 0:c47fb0c1bbf6 225 i=0;
nikitateggi 0:c47fb0c1bbf6 226 DigitalOut YD(PTD6);
nikitateggi 0:c47fb0c1bbf6 227 DigitalOut XL(PTD7);
nikitateggi 0:c47fb0c1bbf6 228 DigitalOut YU(PTC0);
nikitateggi 0:c47fb0c1bbf6 229 DigitalOut XR(PTB0);
nikitateggi 0:c47fb0c1bbf6 230 }
nikitateggi 0:c47fb0c1bbf6 231
nikitateggi 0:c47fb0c1bbf6 232
nikitateggi 0:c47fb0c1bbf6 233
nikitateggi 0:c47fb0c1bbf6 234