forked from kbr-net/sdrive-max
-
Notifications
You must be signed in to change notification settings - Fork 0
/
touchscreen.h
85 lines (66 loc) · 1.7 KB
/
touchscreen.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// X- LCD_D0 8 14 PB0 PCINT0 Hi-Z L Z
// Y- LCD_CS A3 26 PC3 ADC3 L Z+ADC L
// X+ LCD_RS A2 25 PC2 ADC2 Z H Z+ADC
// Y+ LCD_D1 ~9 15 PB1 PCINT1 L Z H
// Ungünstig erscheint hier, dass CS beteiligt ist.
// Die Ausrichtung des LCDs ist stets in „natürlicher“ Form:
// Hochkant mit den Flachkabeln unten. Für Handys eben.
//#pragma once
//#include <stdint.h>
#if defined(ILI9341) || defined(HX8347I)
//Touch For New ILI9341 TP
#define XP PC2 //must be an analog port
#define XP_PORT PORTC
#define XP_DDR DDRC
#define XM PB0
#define XM_PORT PORTB
#define XM_DDR DDRB
#define XM_PIN PINB //for isTouching()
#define YP PB1
#define YP_PORT PORTB
#define YP_DDR DDRB
#define YM PC3 //must be an analog port
#define YM_PORT PORTC
#define YM_DDR DDRC
#elif defined ILI9325
//Touch For ILI9325
//More configuration exists !!
#define XP PC2 //must be an analog port
#define XP_PORT PORTC
#define XP_DDR DDRC
#define XM PD6
#define XM_PORT PORTD
#define XM_DDR DDRD
#define XM_PIN PIND //for isTouching()
#define YP PD7
#define YP_PORT PORTD
#define YP_DDR DDRD
#define YM PC1 //must be an analog port
#define YM_PORT PORTC
#define YM_DDR DDRC
#else
//Touch For ILI9329, ILI9340 or HX8347G
#define XP PC1 //must be an analog port
#define XP_PORT PORTC
#define XP_DDR DDRC
#define XM PD7
#define XM_PORT PORTD
#define XM_DDR DDRD
#define XM_PIN PIND //for isTouching()
#define YP PD6
#define YP_PORT PORTD
#define YP_DDR DDRD
#define YM PC2 //must be an analog port
#define YM_PORT PORTC
#define YM_DDR DDRC
#endif
struct TSPoint {
unsigned int x;
unsigned int y;
};
void restorePorts();
void waitTouch();
char isTouching();
//uint16_t readTouch(uint8_t b);
struct TSPoint getPoint();
struct TSPoint getRawPoint();