|
GUIX的触摸分按下,松手和移动三个事件,正好我们的驱动也是分这三个事件,所以仅需修改下函数TOUCH_PutKey,所有显示屏触摸就都可以完美融合了。
GT811,GT911,FT5X06,STMPE811,RA8875自带电阻触摸等等。
- /*
- *********************************************************************************************************
- * 函 数 名: TOUCH_PutKey
- * 功能说明: 将1个触摸点坐标值压入触摸FIFO缓冲区。电阻触摸屏形参是ADC值,电容触摸屏形参是坐标值
- * 形 参: _usX, _usY 坐标值
- * 返 回 值: 无
- *********************************************************************************************************
- */
- #include "gx_api.h"
- void TOUCH_PutKey(uint8_t _ucEvent, uint16_t _usX, uint16_t _usY)
- {
- uint16_t xx, yy;
- GX_EVENT event;
- if (g_tTP.Enable == 1) /* 电阻屏。 形参是ADC值 */
- {
- xx = TOUCH_TransX(_usX, _usY);
- yy = TOUCH_TransY(_usX, _usY);
- }
- else /* GT811,FTX06,GT911 电容触摸走此分之 */
- {
- /* 无需转换, 直接是坐标值 */
- xx = _usX;
- yy = _usY;
- }
-
- switch (_ucEvent)
- {
- case TOUCH_DOWN:
- event.gx_event_type = GX_EVENT_PEN_DOWN;
- event.gx_event_payload.gx_event_pointdata.gx_point_x = xx;
- event.gx_event_payload.gx_event_pointdata.gx_point_y = yy;
- event.gx_event_sender = 0;
- event.gx_event_target = 0;
- event.gx_event_display_handle = 0xC0000000;
- gx_system_event_send(&event);
- break;
- case TOUCH_MOVE:
- event.gx_event_type = GX_EVENT_PEN_DRAG;
- event.gx_event_payload.gx_event_pointdata.gx_point_x = xx;
- event.gx_event_payload.gx_event_pointdata.gx_point_y = yy;
- event.gx_event_sender = 0;
- event.gx_event_target = 0;
- event.gx_event_display_handle = 0xC0000000;
- gx_system_event_fold(&event);
- break;
- case TOUCH_RELEASE:
- event.gx_event_type = GX_EVENT_PEN_UP;
- event.gx_event_payload.gx_event_pointdata.gx_point_x = xx;
- event.gx_event_payload.gx_event_pointdata.gx_point_y = yy;
- event.gx_event_sender = 0;
- event.gx_event_target = 0;
- event.gx_event_display_handle = 0xC0000000;
- gx_system_event_send(&event);
- break;
- default:
- break;
- }
- }
复制代码
|
|