找回密码
 注册
搜索
查看: 1323|回复: 5

[讨论] 请教触摸屏写字的时候比划两边有很多毛刺怎么解决

[复制链接]
发表于 2006-9-20 12:44:00 | 显示全部楼层 |阅读模式
用的是MTK的方案,touch panel controller 是AK 4182
请问该如何解决
 楼主| 发表于 2006-9-21 13:35:00 | 显示全部楼层
有碰到过这种现象的朋友给个提示也好
点评回复

使用道具 举报

发表于 2006-9-25 12:04:00 | 显示全部楼层
校准时,多取点作平均值看看.
点评回复

使用道具 举报

发表于 2006-9-25 16:49:00 | 显示全部楼层
软件采样到点以后,要去抖,这是TP面板设计时候,电阻的非线性漂移造成的,导致你采样到数据是“杂乱”的。试着将你的状态分为DOWN, UP, MOVE,当你move的时候,判断当前和前一次记录的点,当超出一定的threshold以后,就丢掉。以前有碰到过类似的问题。[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-10-11 19:20:00 | 显示全部楼层
ha  ha  ha  ha
点评回复

使用道具 举报

发表于 2006-10-25 11:17:00 | 显示全部楼层
在以下函数中
kal_bool touch_panel_adc_to_coordinate(kal_int16 *x, kal_int16 *y)
{
      
   *x=(kal_int16)(TPCali.x_slope*(double)(*x)+TPCali.x_offset);   
   *y=(kal_int16)(TPCali.y_slope*(double)(*y)+TPCali.y_offset);   
   if( (SCREEN_X_START<=*x)&&(*x<=SCREEN_X_END)&&
       (SCREEN_Y_START<=*y)&&(*y<=SCREEN_Y_END))
   {
     // dbg_printWithTime("Valid X=%d Y=%d\r\n",*x,*y);            
      return KAL_TRUE;  
   }
   else
   {
      //dbg_printWithTime("Invalid X=%d Y=%d\r\n",*x,*y);            
      if(*x<SCREEN_X_START)
         *x=SCREEN_X_START;
      else if (*x>SCREEN_X_END)
         *x=SCREEN_X_END;
         
      if(*y<SCREEN_Y_START)
         *y=SCREEN_Y_START;
      else if (*y>SCREEN_Y_END)
         *y=SCREEN_Y_END;     
         
      return KAL_FALSE;  //一定要以FALSE返回的,可以将毛刺过滤掉,具体原理就不多说了.   哈     哈哈哈
   }         
   
}[br]<p align=right><font color=red>+1 RD币</font></p>
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-7-2 13:53 , Processed in 0.049349 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表