ADS7843 Controller Touch
main.cpp@0:f014c3cdbc78, 2011-02-04 (annotated)
- Committer:
- Suky
- Date:
- Fri Feb 04 03:09:49 2011 +0000
- Revision:
- 0:f014c3cdbc78
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Suky | 0:f014c3cdbc78 | 1 | #include "mbed.h" |
Suky | 0:f014c3cdbc78 | 2 | #include "Touch.h" |
Suky | 0:f014c3cdbc78 | 3 | /* ********************************************************************** */ |
Suky | 0:f014c3cdbc78 | 4 | #define TOUCH_X_MIN 30 |
Suky | 0:f014c3cdbc78 | 5 | #define TOUCH_X_MAX 230 |
Suky | 0:f014c3cdbc78 | 6 | #define TOUCH_Y_MIN 15 |
Suky | 0:f014c3cdbc78 | 7 | #define TOUCH_Y_MAX 240 |
Suky | 0:f014c3cdbc78 | 8 | /* ********************************************************************** */ |
Suky | 0:f014c3cdbc78 | 9 | DigitalOut Led1(LED1); |
Suky | 0:f014c3cdbc78 | 10 | DigitalOut Led2(LED2); |
Suky | 0:f014c3cdbc78 | 11 | /* ********************************************************************** */ |
Suky | 0:f014c3cdbc78 | 12 | TOUCH_DATA Coordenadas; |
Suky | 0:f014c3cdbc78 | 13 | volatile bool kbhit_irq=0; |
Suky | 0:f014c3cdbc78 | 14 | volatile bool kbhit_tratament=0; |
Suky | 0:f014c3cdbc78 | 15 | |
Suky | 0:f014c3cdbc78 | 16 | TouchScreenADS7843 MyTouch(p9,p10,p11,p12,p8); // ADS7843-> SDO,SDI,SCK,CS,IRQ |
Suky | 0:f014c3cdbc78 | 17 | /* ********************************************************************** */ |
Suky | 0:f014c3cdbc78 | 18 | void vISRTouchIRQ(void){ |
Suky | 0:f014c3cdbc78 | 19 | UINT_COORDxy Temp; |
Suky | 0:f014c3cdbc78 | 20 | |
Suky | 0:f014c3cdbc78 | 21 | MyTouch.vTestTouchPanel(&Coordenadas); |
Suky | 0:f014c3cdbc78 | 22 | // Coordenadas dentro del rango de pantalla LCD: |
Suky | 0:f014c3cdbc78 | 23 | if((Coordenadas.x>TOUCH_X_MIN && Coordenadas.x<TOUCH_X_MAX) && (Coordenadas.y>TOUCH_Y_MIN && Coordenadas.y<TOUCH_Y_MAX)){ |
Suky | 0:f014c3cdbc78 | 24 | // Cambio de coordenada y escala: |
Suky | 0:f014c3cdbc78 | 25 | Temp=Coordenadas.y; |
Suky | 0:f014c3cdbc78 | 26 | Coordenadas.y=((float)((255-TOUCH_X_MIN)-Coordenadas.x)*(320.0/(TOUCH_X_MAX-TOUCH_X_MIN))); |
Suky | 0:f014c3cdbc78 | 27 | Coordenadas.x=((float)(Temp-TOUCH_Y_MIN)*(240.0/(TOUCH_Y_MAX-TOUCH_Y_MIN))); |
Suky | 0:f014c3cdbc78 | 28 | kbhit_irq=1; |
Suky | 0:f014c3cdbc78 | 29 | } |
Suky | 0:f014c3cdbc78 | 30 | } |
Suky | 0:f014c3cdbc78 | 31 | |
Suky | 0:f014c3cdbc78 | 32 | |
Suky | 0:f014c3cdbc78 | 33 | int main(){ |
Suky | 0:f014c3cdbc78 | 34 | |
Suky | 0:f014c3cdbc78 | 35 | |
Suky | 0:f014c3cdbc78 | 36 | MyTouch.vInitADS7843(USE_8BITS,&vISRTouchIRQ); |
Suky | 0:f014c3cdbc78 | 37 | |
Suky | 0:f014c3cdbc78 | 38 | Led1=0; |
Suky | 0:f014c3cdbc78 | 39 | Led2=0; |
Suky | 0:f014c3cdbc78 | 40 | |
Suky | 0:f014c3cdbc78 | 41 | while(1){ |
Suky | 0:f014c3cdbc78 | 42 | Led2=!Led2; |
Suky | 0:f014c3cdbc78 | 43 | if(kbhit_irq==1){ |
Suky | 0:f014c3cdbc78 | 44 | kbhit_irq=0; |
Suky | 0:f014c3cdbc78 | 45 | if((Coordenadas.x<235 && Coordenadas.x>135) && (Coordenadas.y<320 && Coordenadas.y>250)){ |
Suky | 0:f014c3cdbc78 | 46 | Led1=!Led1; |
Suky | 0:f014c3cdbc78 | 47 | } |
Suky | 0:f014c3cdbc78 | 48 | } |
Suky | 0:f014c3cdbc78 | 49 | wait_ms(300); |
Suky | 0:f014c3cdbc78 | 50 | } |
Suky | 0:f014c3cdbc78 | 51 | } |