1 | function gety() : integer;
|
2 | var
|
3 | v0,v1,v2 : word;
|
4 | begin
|
5 | // Y-Positiv und negativ als eingang
|
6 | // X-Positiv und negativ als ausgang
|
7 | TOUCH_XPos_Direction := 1;
|
8 | TOUCH_YPos_Direction := 0;
|
9 | TOUCH_XNeg_Direction := 1;
|
10 | TOUCH_YNeg_Direction := 0;
|
11 |
|
12 | // X-Negativ hi ==> VCC 3,3V
|
13 | // X-Positiv lo ==> GND
|
14 | TOUCH_XPos := 0;
|
15 | TOUCH_YPos := 0;
|
16 | TOUCH_XNeg := 1;
|
17 | TOUCH_YNeg := 0;
|
18 | // Y-Positiv und negativ werden von dem 100K Pulldown auf GND gezogen
|
19 | // ADC 3x einlesen und mittelwertbildung
|
20 | delay_us(50);
|
21 | v0 := MCP3204_Read(2);
|
22 | delay_us(10);
|
23 | v1 := MCP3204_Read(2);
|
24 | delay_us(10);
|
25 | v2 := MCP3204_Read(2);
|
26 | result := (v0+v1+v2) div 3;
|
27 | // Alle Touchscreenports auf eingang
|
28 | TOUCH_XPos_Direction := 0;
|
29 | TOUCH_YPos_Direction := 0;
|
30 | TOUCH_XNeg_Direction := 0;
|
31 | TOUCH_YNeg_Direction := 0;
|
32 | TOUCH_XPos := 0;
|
33 | TOUCH_YPos := 0;
|
34 | TOUCH_XNeg := 0;
|
35 | TOUCH_YNeg := 0;
|
36 | delay_us(5);
|
37 | end;
|
38 | (******************************************************************************)
|
39 | function getx() : integer;
|
40 | var
|
41 | v0,v1,v2 : word;
|
42 | begin
|
43 | // Y-Positiv und negativ als ausgang
|
44 | // X-Positiv und negativ als eingang
|
45 | TOUCH_XPos_Direction := 0;
|
46 | TOUCH_YPos_Direction := 1;
|
47 | TOUCH_XNeg_Direction := 0;
|
48 | TOUCH_YNeg_Direction := 1;
|
49 |
|
50 | // Y-Positiv hi ==> VCC 3,3V
|
51 | // Y-Negativ lo ==> GND
|
52 | TOUCH_XPos := 0;
|
53 | TOUCH_YPos := 1;
|
54 | TOUCH_XNeg := 0;
|
55 | TOUCH_YNeg := 0;
|
56 |
|
57 | // X-Positiv und negativ werden von dem 100K Pulldown auf GND gezogen
|
58 | // ADC 3x einlesen und mittelwertbildung
|
59 | delay_us(50);
|
60 | v0 := MCP3204_Read(3);
|
61 | delay_us(10);
|
62 | v1 := MCP3204_Read(3);
|
63 | delay_us(10);
|
64 | v2 := MCP3204_Read(3);
|
65 | result := (v0+v1+v2) div 3;
|
66 |
|
67 | // Alle Touchscreenports auf eingang
|
68 | TOUCH_XPos_Direction := 0;
|
69 | TOUCH_YPos_Direction := 0;
|
70 | TOUCH_XNeg_Direction := 0;
|
71 | TOUCH_YNeg_Direction := 0;
|
72 | TOUCH_XPos := 0;
|
73 | TOUCH_YPos := 0;
|
74 | TOUCH_XNeg := 0;
|
75 | TOUCH_YNeg := 0;
|
76 | delay_us(5);
|
77 |
|
78 | end;
|
79 | (******************************************************************************)
|
80 | function Touch_GetPressure() : integer;
|
81 | begin
|
82 | result := 0;
|
83 | // Y-Positiv und negativ als eingang
|
84 | // X-Positiv und negativ als ausgang
|
85 | TOUCH_XPos_Direction := 1;
|
86 | TOUCH_YPos_Direction := 0;
|
87 | TOUCH_XNeg_Direction := 1;
|
88 | TOUCH_YNeg_Direction := 0;
|
89 |
|
90 | // X-Negativ hi ==> VCC 3,3V
|
91 | // X-Positiv hi ==> VCC 3,3V
|
92 | TOUCH_XPos := 1;
|
93 | TOUCH_YPos := 0;
|
94 | TOUCH_XNeg := 1;
|
95 | TOUCH_YNeg := 0;
|
96 | delay_us(50);
|
97 |
|
98 | // Eingang Y-Negativ lesen
|
99 | if TOUCH_YNeg_In then
|
100 | begin
|
101 | result := 1;
|
102 | end;
|
103 |
|
104 | // Alle Touchscreenports auf eingang
|
105 | TOUCH_XPos_Direction := 0;
|
106 | TOUCH_YPos_Direction := 0;
|
107 | TOUCH_XNeg_Direction := 0;
|
108 | TOUCH_YNeg_Direction := 0;
|
109 | TOUCH_XPos := 0;
|
110 | TOUCH_YPos := 0;
|
111 | TOUCH_XNeg := 0;
|
112 | TOUCH_YNeg := 0;
|
113 | delay_us(5);
|
114 | end;
|