Vlad Craciun / SSD1289_TouchScreen
Committer:
vcraciun
Date:
Sat Sep 14 11:40:09 2013 +0000
Revision:
0:55a3f0eda74d
Child:
1:e7ae315a1ceb
SSD1289 TouchScreen Library based on Todor Todorov tftlcd library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vcraciun 0:55a3f0eda74d 1 #ifndef __TOUCH_PANEL__
vcraciun 0:55a3f0eda74d 2 #define __TOUCH_PANEL__
vcraciun 0:55a3f0eda74d 3
vcraciun 0:55a3f0eda74d 4 #include "mbed.h"
vcraciun 0:55a3f0eda74d 5 #include "ssd1289.h"
vcraciun 0:55a3f0eda74d 6
vcraciun 0:55a3f0eda74d 7 #ifdef __cplusplus
vcraciun 0:55a3f0eda74d 8 extern "C" {
vcraciun 0:55a3f0eda74d 9 #endif
vcraciun 0:55a3f0eda74d 10
vcraciun 0:55a3f0eda74d 11 typedef struct POINT
vcraciun 0:55a3f0eda74d 12 {
vcraciun 0:55a3f0eda74d 13 uint16_t x;
vcraciun 0:55a3f0eda74d 14 uint16_t y;
vcraciun 0:55a3f0eda74d 15 }Coordinate;
vcraciun 0:55a3f0eda74d 16
vcraciun 0:55a3f0eda74d 17 typedef struct Matrix
vcraciun 0:55a3f0eda74d 18 {
vcraciun 0:55a3f0eda74d 19 long double An,Bn,Cn,Dn,En,Fn,Divider;
vcraciun 0:55a3f0eda74d 20 } Matrix ;
vcraciun 0:55a3f0eda74d 21
vcraciun 0:55a3f0eda74d 22 /* Private variables ---------------------------------------------------------*/
vcraciun 0:55a3f0eda74d 23 extern Coordinate ScreenSample[3];
vcraciun 0:55a3f0eda74d 24 extern Coordinate DisplaySample[3];
vcraciun 0:55a3f0eda74d 25 extern Matrix matrix ;
vcraciun 0:55a3f0eda74d 26 extern Coordinate display ;
vcraciun 0:55a3f0eda74d 27
vcraciun 0:55a3f0eda74d 28 /* Private define ------------------------------------------------------------*/
vcraciun 0:55a3f0eda74d 29
vcraciun 0:55a3f0eda74d 30 #define CHX 0x90
vcraciun 0:55a3f0eda74d 31 #define CHY 0xD0
vcraciun 0:55a3f0eda74d 32
vcraciun 0:55a3f0eda74d 33 #define THRESHOLD 2
vcraciun 0:55a3f0eda74d 34
vcraciun 0:55a3f0eda74d 35 class Touch
vcraciun 0:55a3f0eda74d 36 {
vcraciun 0:55a3f0eda74d 37 public:
vcraciun 0:55a3f0eda74d 38 Touch(SSD1289_LCD *lcd,SPI *spi, DigitalOut *cs, DigitalIn *irq);
vcraciun 0:55a3f0eda74d 39 void InitializeTouch();
vcraciun 0:55a3f0eda74d 40 int RD_AD(void);
vcraciun 0:55a3f0eda74d 41 int Read_X(void);
vcraciun 0:55a3f0eda74d 42 int Read_Y(void);
vcraciun 0:55a3f0eda74d 43 void TP_GetAdXY(int *x,int *y);
vcraciun 0:55a3f0eda74d 44 void TP_DrawPoint(int Xpos,int Ypos);
vcraciun 0:55a3f0eda74d 45 void DrawCross(int Xpos,int Ypos);
vcraciun 0:55a3f0eda74d 46 Coordinate *Read_Ads7846(void);
vcraciun 0:55a3f0eda74d 47 bool setCalibrationMatrix( Coordinate * displayPtr, Coordinate * screenPtr, Matrix * matrixPtr);
vcraciun 0:55a3f0eda74d 48 void TouchPanel_Calibrate(void);
vcraciun 0:55a3f0eda74d 49
vcraciun 0:55a3f0eda74d 50
vcraciun 0:55a3f0eda74d 51 private:
vcraciun 0:55a3f0eda74d 52 SPI *_spi;
vcraciun 0:55a3f0eda74d 53 DigitalOut *_cs;
vcraciun 0:55a3f0eda74d 54 DigitalIn *_irq;
vcraciun 0:55a3f0eda74d 55 SSD1289_LCD *_lcd;
vcraciun 0:55a3f0eda74d 56 };
vcraciun 0:55a3f0eda74d 57
vcraciun 0:55a3f0eda74d 58
vcraciun 0:55a3f0eda74d 59 #ifdef __cplusplus
vcraciun 0:55a3f0eda74d 60 }
vcraciun 0:55a3f0eda74d 61 #endif
vcraciun 0:55a3f0eda74d 62
vcraciun 0:55a3f0eda74d 63
vcraciun 0:55a3f0eda74d 64 #endif