MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / rtgui_touch_calculate

Function rtgui_touch_calculate

bsp/loongson/ls1cdev/drivers/touch.c:213–310  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

211
212
213static void rtgui_touch_calculate(void)
214{
215 if (touch != RT_NULL)
216 {
217 /* read touch */
218 {
219 rt_uint8_t i, j, k, min;
220 rt_uint16_t temp;
221 rt_uint16_t tmpxy[2][SAMP_CNT];
222 rt_uint8_t send_buffer[1];
223 rt_uint8_t recv_buffer[2];
224 for(i=0; i<SAMP_CNT; i++)
225 {
226 send_buffer[0] = TOUCH_MSR_X;
227 touch_send_then_recv(touch->spi_device, send_buffer, 1, recv_buffer, 2);
228 rt_kprintf("touch x: %d ",(recv_buffer[0]*256|recv_buffer[1])>>4);
229#if defined(_ILI_HORIZONTAL_DIRECTION_)
230 tmpxy[1][i] = (recv_buffer[0]<<8)|recv_buffer[1] ;
231 tmpxy[1][i] >>= 4;
232#else
233 tmpxy[0][i] = (recv_buffer[0]<<8)|recv_buffer[1] ;
234 tmpxy[0][i] >>=4;
235
236#endif
237 send_buffer[0] = TOUCH_MSR_Y;
238 touch_send_then_recv(touch->spi_device, send_buffer, 1, recv_buffer, 2);
239 rt_kprintf("touch y: %d \n",(recv_buffer[0]*256|recv_buffer[1])>>4);
240
241#if defined(_ILI_HORIZONTAL_DIRECTION_)
242 tmpxy[0][i] = (recv_buffer[0]<<8)|recv_buffer[1] ;
243 tmpxy[0][i] >>= 4;
244#else
245 tmpxy[1][i] = (recv_buffer[0]<<8)|recv_buffer[1] ;
246 tmpxy[1][i] >>= 4;
247#endif
248 }
249 /*再次打开触摸中断*/
250 send_buffer[0] = 1 << 7;
251 touch_send_then_recv(touch->spi_device, send_buffer, 1, recv_buffer, 2);
252 touch_send_then_recv(touch->spi_device, send_buffer, 1, recv_buffer, 2);
253 /* calculate average */
254 {
255 rt_uint32_t total_x = 0;
256 rt_uint32_t total_y = 0;
257 for(k=0; k<2; k++)
258 {
259 // sorting the ADC value
260 for(i=0; i<SAMP_CNT-1; i++)
261 {
262 min=i;
263 for (j=i+1; j<SAMP_CNT; j++)
264 {
265 if (tmpxy[k][min] > tmpxy[k][j])
266 min=j;
267 }
268 temp = tmpxy[k][i];
269 tmpxy[k][i] = tmpxy[k][min];
270 tmpxy[k][min] = temp;

Callers 1

touch_thread_entryFunction · 0.85

Calls 2

touch_send_then_recvFunction · 0.85
rt_kprintfFunction · 0.85

Tested by

no test coverage detected