ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts  1.0
ESP8266ILI9341DisplayProject
xpt2046.h
Go to the documentation of this file.
1 
25 #ifndef _XPT2046_H_
26 #define _XPT2046_H_
27 
29 #define XPT2046_SAMPLES 8 /* number of samples to take */
30 #define XPT2046_DEBOUNCE 5 /* Debound value in mS */
31 #define XPT2046_EVENTS 10 /* Number of queued touch events */
32 
34 #define XPT2046_READ_Y 0x91 /* Read Y position*/
35 #define XPT2046_READ_Z1 0xb1 /* Read Z1 */
36 #define XPT2046_READ_Z2 0xc1 /* read Z2 */
37 #define XPT2046_READ_X 0xd1 /* Read X position */
38 
39 
43 typedef struct xpt2046_win
44 {
45  int xmin;
46  int ymin;
47  int xmax;
48  int ymax;
50 
51 typedef struct _xpt2046
52 {
53  // touch debounce state machine
54  int state; // Debounce state machine
55  int ms; // Debounce 1mS timer
56 
57  // rotation of touch screen
58  int rotation;
59 
60  // raw uncorrected values
62 
63  // map calibration to this range
65 
66  // touch input queue
67  int ind; // touch events
68  int head; // head of touch event queue
69  int tail; // tail of touch event queue
70  uint16_t XQ[XPT2046_EVENTS+1]; // Debounced X result
71  uint16_t YQ[XPT2046_EVENTS+1]; // Debounced Y result
72 } xpt2046_t;
73 
74 typedef struct _sdev {
76  float mean, sdev;
77 } sdev_t;
78 
79 /* xpt2046.c */
80 MEMSPACE void XPT2046_spi_init ( void );
81 MEMSPACE void XPT2046_key_flush ( void );
83 int XPT2046_xy_raw ( uint16_t *X , uint16_t *Y );
85 MEMSPACE int nearest_run ( int *v , int size , int minsamples , int *count );
88 MEMSPACE void XPT2046_task ( void );
90 MEMSPACE int sdev ( uint16_t *samples , int size , sdev_t *Z );
91 
92 #endif // _XPT2046_H_
93 
94 
95 
int xmax
Definition: xpt2046.h:47
xpt2046_win_t raw
Definition: xpt2046.h:61
MEMSPACE int nearest_run(int *v, int size, int minsamples, int *count)
int ms
Definition: xpt2046.h:55
struct _xpt2046 xpt2046_t
unsigned short uint16_t
Definition: send.c:18
#define XPT2046_EVENTS
Definition: xpt2046.h:31
int ind
Definition: xpt2046.h:67
MEMSPACE int XPT2046_xy_filtered_test(uint16_t *X, uint16_t *Y)
int ymin
Definition: xpt2046.h:46
Cordic_T X
Main Cordic routine - used for basic trig and vector rotations We use fixed point numbers...
Definition: cordic.c:102
xpt2046_win_t map
Definition: xpt2046.h:64
int state
Definition: xpt2046.h:54
MEMSPACE int sdev(uint16_t *samples, int size, sdev_t *Z)
struct _sdev sdev_t
int xmin
Definition: xpt2046.h:45
Cordic_T Y
Definition: cordic.c:102
uint16_t XPT2046_read(uint8_t cmd)
MEMSPACE void XPT2046_spi_init(void)
int XPT2046_xy_raw(uint16_t *X, uint16_t *Y)
int head
Definition: xpt2046.h:68
Cordic_T Z
Definition: cordic.c:102
int rotation
Definition: xpt2046.h:58
MEMSPACE int XPT2046_xy_filtered(uint16_t *X, uint16_t *Y)
MEMSPACE int XPT2046_key(uint16_t *X, uint16_t *Y)
MEMSPACE void XPT2046_task(void)
int tail
Definition: xpt2046.h:69
MEMSPACE void XPT2046_key_flush(void)
#define MEMSPACE
Definition: cpu.h:25
float sdev
Definition: xpt2046.h:76
Definition: xpt2046.h:74
unsigned char uint8_t
Definition: send.c:17
int ymax
Definition: xpt2046.h:48
struct xpt2046_win xpt2046_win_t
initial calibration values for your display Note: these values are not rotated
initial calibration values for your display Note: these values are not rotated
Definition: xpt2046.h:43
uint16_t min
Definition: xpt2046.h:75