当前位置: 代码迷 >> 驱动开发 >> 多点触摸屏 画线时手指头释放后线条才显示出来
  详细解决方案

多点触摸屏 画线时手指头释放后线条才显示出来

热度:124   发布时间:2016-04-28 10:07:36.0
多点触摸屏 画线时手指释放后线条才显示出来
现在在调试SSD2533的10点触摸屏,使用 TouchTest APK测试,上报坐标是准确的,在画线的时候,要释放手指后,线条才显示出来。
在画线时候,后台是一直都在打印上报的数据的。
if ((touch_status>>4)&(0x3ff)) //at lease one finger detced
        {
                for (i = 0; i < MAX_FINGERS ;i ++)
                {
                        if((touch_status>>4)&(1<<i))
                        {
                                tp_ssd2533_read_reg(0x7C+i,val,4);
                                mt_buf[i].x = val[0]|((val[2]&0xF0)<<4);
                                mt_buf[i].y= val[1]|((val[2]&0x0F)<<;
                                mt_buf[i].press=(val[3]&0xF0)>>4;

                                ssd2533_touch_dbg("x=%d,y=%d,press = %d finger = %d\n",mt_buf[i].x,mt_buf[i].y,mt_buf[i].press,i);
                                printk(">>>>>>>>>>> x=%d,y=%d,press = %d finger = %d\n",mt_buf[i].x,mt_buf[i].y,mt_buf[i].press,i);
                                if(mt_buf[i].x==0xFFF||mt_buf[i].y==0xFFF )
                                {
                                        ssd2533_touch_dbg("finger %d up!!!\n",i);
                                        printk("===================== finger %d up!!!\n",i);
                                }else
                                {
                                        input_report_abs(ts->dev, ABS_MT_POSITION_X, mt_buf[i].x>150 ? mt_buf[i].x-150:0);
                                        input_report_abs(ts->dev, ABS_MT_POSITION_Y, mt_buf[i].y);
                                        input_report_abs(ts->dev,ABS_MT_TOUCH_MAJOR, 1);
                                        input_report_abs(ts->dev,ABS_MT_PRESSURE, 1/*mt_buf[i].press*/);
                                        input_report_abs(ts->dev,ABS_MT_TRACKING_ID, i);  //Track iD .
                                        input_mt_sync(ts->dev);
                                        printk(">>>>>>>>>>>>>>>>>>>>> x[%d]=%4d y[%d]=%4d \n",i,mt_buf[i].x,i,mt_buf[i].y);