ADS7843 Controller Touch

Dependencies:   TouchADS7843

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }