ADS7843 Controller Touch
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include "Touch.h" 00003 /* ********************************************************************** */ 00004 #define TOUCH_X_MIN 30 00005 #define TOUCH_X_MAX 230 00006 #define TOUCH_Y_MIN 15 00007 #define TOUCH_Y_MAX 240 00008 /* ********************************************************************** */ 00009 DigitalOut Led1(LED1); 00010 DigitalOut Led2(LED2); 00011 /* ********************************************************************** */ 00012 TOUCH_DATA Coordenadas; 00013 volatile bool kbhit_irq=0; 00014 volatile bool kbhit_tratament=0; 00015 00016 TouchScreenADS7843 MyTouch(p9,p10,p11,p12,p8); // ADS7843-> SDO,SDI,SCK,CS,IRQ 00017 /* ********************************************************************** */ 00018 void vISRTouchIRQ(void){ 00019 UINT_COORDxy Temp; 00020 00021 MyTouch.vTestTouchPanel(&Coordenadas); 00022 // Coordenadas dentro del rango de pantalla LCD: 00023 if((Coordenadas.x>TOUCH_X_MIN && Coordenadas.x<TOUCH_X_MAX) && (Coordenadas.y>TOUCH_Y_MIN && Coordenadas.y<TOUCH_Y_MAX)){ 00024 // Cambio de coordenada y escala: 00025 Temp=Coordenadas.y; 00026 Coordenadas.y=((float)((255-TOUCH_X_MIN)-Coordenadas.x)*(320.0/(TOUCH_X_MAX-TOUCH_X_MIN))); 00027 Coordenadas.x=((float)(Temp-TOUCH_Y_MIN)*(240.0/(TOUCH_Y_MAX-TOUCH_Y_MIN))); 00028 kbhit_irq=1; 00029 } 00030 } 00031 00032 00033 int main(){ 00034 00035 00036 MyTouch.vInitADS7843(USE_8BITS,&vISRTouchIRQ); 00037 00038 Led1=0; 00039 Led2=0; 00040 00041 while(1){ 00042 Led2=!Led2; 00043 if(kbhit_irq==1){ 00044 kbhit_irq=0; 00045 if((Coordenadas.x<235 && Coordenadas.x>135) && (Coordenadas.y<320 && Coordenadas.y>250)){ 00046 Led1=!Led1; 00047 } 00048 } 00049 wait_ms(300); 00050 } 00051 }
Generated on Wed Jul 13 2022 21:59:32 by 1.7.2