Rev 1286 | Rev 1288 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1286 | Rev 1287 | ||
|---|---|---|---|
| Line 51... | Line 51... | ||
| 51 | F3: Klar |
51 | F3: Klar |
| 52 | F4: Klar |
52 | F4: Klar |
| 53 | F5: Klar |
53 | F5: Klar |
| 54 | F6: Klar |
54 | F6: Klar |
| 55 | F7: Klar |
55 | F7: Klar |
| 56 | F8: Klar |
56 | F8: Klar? (kontrollera funktion) |
| 57 | F9: |
57 | F9: |
| 58 | - | ||
| 59 | */ |
58 | */ |
| 60 | - | ||
| 61 | 59 | ||
| 62 | /* |
60 | /* |
| 63 | To fix: |
61 | To fix: |
| 64 | Break out to a driver file |
62 | Break out to a driver file |
| 65 | */ |
63 | */ |
| Line 103... | Line 101... | ||
| 103 | if (f1_sign != CAN_MODULE_ENUM_TOUCH_GESTURE_F2_M) |
101 | if (f1_sign != CAN_MODULE_ENUM_TOUCH_GESTURE_F2_M) |
| 104 | { |
102 | { |
| 105 | functionData.f1++; |
103 | functionData.f1++; |
| 106 | } |
104 | } |
| 107 | f1_sign = CAN_MODULE_ENUM_TOUCH_GESTURE_F2_M; |
105 | f1_sign = CAN_MODULE_ENUM_TOUCH_GESTURE_F2_M; |
| 108 | } |
106 | } |
| 109 | 107 | ||
| 110 | /* Function 3 indicates the sign value of area gap between g(x) and f(x) */ |
108 | /* Function 3 indicates the sign value of area gap between g(x) and f(x) */ |
| 111 | if (buffer[i].x > min(buffer[startIndex].x, buffer[endIndex].x) && buffer[i].x < max(buffer[startIndex].x, buffer[endIndex].x)) |
109 | if (buffer[i].x > min(buffer[startIndex].x, buffer[endIndex].x) && buffer[i].x < max(buffer[startIndex].x, buffer[endIndex].x)) |
| 112 | { |
110 | { |
| 113 | f3_tmp += f3_yref - (buffer[i].y + buffer[i-1].y)/2; |
111 | f3_tmp += f3_yref - (buffer[i].y + buffer[i-1].y)/2; |
| Line 117... | Line 115... | ||
| 117 | if (xMin > buffer[i].x) |
115 | if (xMin > buffer[i].x) |
| 118 | { |
116 | { |
| 119 | xMin = buffer[i].x; |
117 | xMin = buffer[i].x; |
| 120 | } |
118 | } |
| 121 | if (xMax < buffer[i].x) |
119 | if (xMax < buffer[i].x) |
| 122 | { |
120 | { |
| 123 | xMax = buffer[i].x; |
121 | xMax = buffer[i].x; |
| 124 | } |
122 | } |
| 125 | if (yMin > buffer[i].y) |
123 | if (yMin > buffer[i].y) |
| 126 | { |
124 | { |
| 127 | yMin = buffer[i].y; |
125 | yMin = buffer[i].y; |
| 128 | } |
126 | } |
| 129 | if (yMax < buffer[i].y) |
127 | if (yMax < buffer[i].y) |
| 130 | { |
128 | { |
| 131 | yMax = buffer[i].y; |
129 | yMax = buffer[i].y; |
| 132 | } |
130 | } |
| 133 | 131 | ||
| 134 | /* Function 4 represents the sign value of the sum of the x coordinates of all the points that constitute strokes |
132 | /* Function 4 represents the sign value of the sum of the x coordinates of all the points that constitute strokes |
| 135 | minus the x coordinates of the last point */ |
133 | minus the x coordinates of the last point */ |
| 136 | f4_tmp += (int16_t)buffer[i].x - (int16_t)buffer[endIndex].x; |
134 | f4_tmp += (int16_t)buffer[i].x - (int16_t)buffer[endIndex].x; |
| 137 | 135 | ||
| 138 | /* Function 5 checks the sign value of the sum of the x coordinates of all the points that constitute strokes |
136 | /* Function 5 checks the sign value of the sum of the x coordinates of all the points that constitute strokes |
| 139 | minus x coordinates of the first point */ |
137 | minus x coordinates of the first point */ |
| 140 | f5_tmp += (int16_t)buffer[i].x - (int16_t)buffer[startIndex].x; |
138 | f5_tmp += (int16_t)buffer[i].x - (int16_t)buffer[startIndex].x; |
| 141 | } |
139 | } |
| 142 | 140 | ||
| Line 149... | Line 147... | ||
| 149 | for (uint8_t i = startIndex+1; i < endIndex-1; i++) |
147 | for (uint8_t i = startIndex+1; i < endIndex-1; i++) |
| 150 | { |
148 | { |
| 151 | if (j > buffer[i].y) |
149 | if (j > buffer[i].y) |
| 152 | { |
150 | { |
| 153 | if (f7_sign != '+') |
151 | if (f7_sign != '+') |
| 154 | { |
152 | { |
| 155 | f7_tmp++; |
153 | f7_tmp++; |
| 156 | } |
154 | } |
| 157 | f7_sign = '+'; |
155 | f7_sign = '+'; |
| 158 | } |
156 | } |
| 159 | else { |
157 | else { |
| 160 | if (f7_sign != '-') |
158 | if (f7_sign != '-') |
| 161 | { |
159 | { |
| 162 | f7_tmp++; |
160 | f7_tmp++; |
| 163 | } |
161 | } |
| Line 233... | Line 231... | ||
| 233 | gpio_set_pullup(sns_Touch_XPLUS); //turn on pullup for x+ |
231 | gpio_set_pullup(sns_Touch_XPLUS); //turn on pullup for x+ |
| 234 | gpio_set_out(sns_Touch_YPLUS); |
232 | gpio_set_out(sns_Touch_YPLUS); |
| 235 | gpio_set_pin(sns_Touch_YPLUS); //turn on 1 on y+ |
233 | gpio_set_pin(sns_Touch_YPLUS); //turn on 1 on y+ |
| 236 | gpio_set_out(sns_Touch_YMINUS); |
234 | gpio_set_out(sns_Touch_YMINUS); |
| 237 | gpio_clr_pin(sns_Touch_YMINUS); //turn on 0 on y- |
235 | gpio_clr_pin(sns_Touch_YMINUS); //turn on 0 on y- |
| - | 236 | #ifdef sns_Touch_SWITCH_XY |
|
| - | 237 | uint8_t adyval = ADC_Get(sns_Touch_TOUCHXAD)>>2; //read x- |
|
| - | 238 | #else |
|
| 238 | uint8_t adxval = ADC_Get(sns_Touch_TOUCHXAD)>>2; //read x- |
239 | uint8_t adxval = ADC_Get(sns_Touch_TOUCHXAD)>>2; //read x- |
| - | 240 | #endif |
|
| - | 241 | ||
| 239 | gpio_set_in(sns_Touch_YPLUS); |
242 | gpio_set_in(sns_Touch_YPLUS); |
| 240 | gpio_clr_pullup(sns_Touch_YPLUS); //turn off pullup for y+ |
243 | gpio_clr_pullup(sns_Touch_YPLUS); //turn off pullup for y+ |
| 241 | gpio_set_in(sns_Touch_YMINUS); |
244 | gpio_set_in(sns_Touch_YMINUS); |
| 242 | gpio_clr_pullup(sns_Touch_YMINUS); //turn off pullup for y- |
245 | gpio_clr_pullup(sns_Touch_YMINUS); //turn off pullup for y- |
| 243 | gpio_set_in(sns_Touch_XPLUS); |
246 | gpio_set_in(sns_Touch_XPLUS); |
| 244 | gpio_clr_pullup(sns_Touch_XPLUS); //turn off pullup for x+ |
247 | gpio_clr_pullup(sns_Touch_XPLUS); //turn off pullup for x+ |
| 245 | 248 | ||
| 246 | gpio_set_in(sns_Touch_YPLUS); |
249 | gpio_set_in(sns_Touch_YPLUS); |
| 247 | gpio_set_pullup(sns_Touch_YPLUS); //turn on pullup for y+ |
250 | gpio_set_pullup(sns_Touch_YPLUS); //turn on pullup for y+ |
| 248 | gpio_set_out(sns_Touch_XPLUS); |
251 | gpio_set_out(sns_Touch_XPLUS); |
| 249 | gpio_set_pin(sns_Touch_XPLUS); //turn on 1 on x+ |
252 | gpio_set_pin(sns_Touch_XPLUS); //turn on 1 on x+ |
| 250 | gpio_set_out(sns_Touch_XMINUS); |
253 | gpio_set_out(sns_Touch_XMINUS); |
| 251 | gpio_clr_pin(sns_Touch_XMINUS); //turn on 0 on x- |
254 | gpio_clr_pin(sns_Touch_XMINUS); //turn on 0 on x- |
| - | 255 | #ifdef sns_Touch_SWITCH_XY |
|
| - | 256 | uint8_t adxval = ADC_Get(sns_Touch_TOUCHYAD)>>2; //read y- |
|
| - | 257 | #else |
|
| 252 | uint8_t adyval = ADC_Get(sns_Touch_TOUCHYAD)>>2; //read y- |
258 | uint8_t adyval = ADC_Get(sns_Touch_TOUCHYAD)>>2; //read y- |
| - | 259 | #endif |
|
| 253 | gpio_set_in(sns_Touch_XPLUS); |
260 | gpio_set_in(sns_Touch_XPLUS); |
| 254 | gpio_clr_pullup(sns_Touch_XPLUS); //turn off pullup for x+ |
261 | gpio_clr_pullup(sns_Touch_XPLUS); //turn off pullup for x+ |
| 255 | gpio_set_in(sns_Touch_XMINUS); |
262 | gpio_set_in(sns_Touch_XMINUS); |
| 256 | gpio_clr_pullup(sns_Touch_XMINUS); //turn off pullup for x- |
263 | gpio_clr_pullup(sns_Touch_XMINUS); //turn off pullup for x- |
| 257 | gpio_set_in(sns_Touch_YPLUS); |
264 | gpio_set_in(sns_Touch_YPLUS); |
| 258 | gpio_clr_pullup(sns_Touch_YPLUS); //turn off pullup for y+ |
265 | gpio_clr_pullup(sns_Touch_YPLUS); //turn off pullup for y+ |
| - | 266 | ||
| - | 267 | ||
| 259 | 268 | ||
| 260 | if (adyval < 0xf0 && adxval < 0xf0 ) |
269 | if (adyval < 0xf0 && adxval < 0xf0 ) |
| 261 | { |
270 | { |
| - | 271 | #ifdef sns_Touch_INVERT_Y |
|
| - | 272 | adyval = 255-adyval; |
|
| - | 273 | #endif |
|
| - | 274 | #ifdef sns_Touch_INVERT_X |
|
| - | 275 | adxval = 255-adxval; |
|
| - | 276 | #endif |
|
| 262 | pushStatus = 1; |
277 | pushStatus = 1; |
| 263 | uint8_t xdiff=0; |
278 | uint8_t xdiff=0; |
| 264 | uint8_t ydiff=0; |
279 | uint8_t ydiff=0; |
| 265 | if (rxbufidx > 0) |
280 | if (rxbufidx > 0) |
| 266 | { |
281 | { |