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
touch_modules.cpp
- Committer:
- nikitateggi
- Date:
- 2016-12-27
- Revision:
- 0:c47fb0c1bbf6
- Child:
- 1:8316c23ec6b9
File content as of revision 0:c47fb0c1bbf6:
#include "mbed.h" #include "ili9325.h" #include "lcd_base.h" #include "display_modules.h" #include "touch_modules.h" InterruptIn Touch_D(PTD6); int i; unsigned int xt; unsigned int yt; void touch1() //determining the touch co-ordinates { xt = (X_MAX*readTouchX()/TOTAL1); yt = (Y_MAX*readTouchY()/TOTAL1); } void detect_touch() // detect the touch //debounce { while(i==1) { while(Touch_D)//touch detection { wait_ms(200); ///wait for debounce check if (Touch_D) { Touch_D.fall(&touch1); //determine the touch co-ordinates break; } DisableTouch(); } } } unsigned char touch_main() //determining the touch for home screen { unsigned char state; if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) // GLC { state=1; } else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) ) // ECG { state=2; } else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) // BP { state=3; } else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) // SET { state=4; } return state; } unsigned char touch_ecg() // determining the touch for ecg screen { unsigned char state; if ( ((xt >=28) && (xt<=125)) && ( (yt>= 225) && (yt<= 285) ) ) // home screen { state=5; } if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) // SET { state=6; } else if ( ((xt >=150) && (xt<=195)) && ( (yt>= 80) && (yt<= 190) ) ) // start { state=7; } else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) // history { state=8; } return state; } unsigned char touch_bp() // //determining the touch for bp screen { unsigned char state; if ( ((xt >=28) && (xt<=125)) && ( (yt>= 225) && (yt<= 285) ) ) { state=1; } else if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) { state=2; } else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) ) { state=3; } else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) { state=4; } else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) { state=5; } return state; } unsigned char touch_glc() ////determining the touch for home screen { unsigned char state; if ( ((xt >=28) && (xt<=125)) && ( (yt>= 225) && (yt<= 285) ) ) { state=1; } else if ( ((xt >=35) && (xt<=100)) && ( (yt>= 135) && (yt<= 185) ) ) { state=2; } else if ( ((xt >=130) && (xt<=195)) && ( (yt>= 135) && (yt<= 185) ) ) { state=3; } else if ( ((xt >= 35) && (xt<=100)) && ( (yt>= 65) && (yt<= 118) ) ) { state=4; } else if ( ((xt >= 130) && (xt<=195)) && ( (yt>= 65) && (yt<= 118) ) ) // SET { state=5; } return state; } int readTouchY(void) { DigitalOut YD(PTD6); DigitalIn XL(PTD7); DigitalOut YU(PTC0); YU = 1; YD = 0; AnalogIn XR(PTB0); XL.mode(PullNone); return XR.read_u16(); } int readTouchX(void) { DigitalOut XR(PTB0); DigitalIn YD(PTD6); DigitalOut XL(PTD7); XR = 1; XL = 0; AnalogIn YU(PTC0); YD.mode(PullNone); return YU.read_u16(); } void EnableTouch(void){ DigitalIn YD(PTD6); DigitalOut XL(PTD7); DigitalIn YU(PTC0); DigitalIn XR(PTB0); XL=0; YD.mode(PullUp); YU.mode(PullNone); XR.mode(PullNone); i=1; Touch_D.fall(&touch1); Touch_D.enable_irq(); } void DisableTouch (void){ Touch_D.disable_irq(); i=0; DigitalOut YD(PTD6); DigitalOut XL(PTD7); DigitalOut YU(PTC0); DigitalOut XR(PTB0); }