ctp上下颠倒
mt6572的平台上
y=屏高-y
哪里改y值?
static int touch_event_handler(void *unused){
……
input_y=GTP_MAX_HEIGHT - input_y;
……
}
tpd_touchinfo这里吗?
TP_UP 和TP_DOWN
y方向调好了,x方向左右反了,怎么调,用屏幕宽度去减好像不行?
static void tpd_down(int x, int y, int p) {
if(y<TPD_RES_Y )
{
x = ( TPD_RES_X - 1 - x );
y = ( TPD_RES_Y - 1 - y );
}
static void tpd_up(int x, int y,int *count) {
if(y<800)
{
x = ( TPD_RES_X - 1 - x );
y = ( TPD_RES_Y - 1 - y );
}
按上面的试过了吗?
方法是一样的。
if(x<TPD_RES_X ) 不用在这个判断吗?
static int touch_event_handler(void *unused)函数中
do
{
mt65xx_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM);
set_current_state(TASK_INTERRUPTIBLE);
wait_event_interruptible(waiter,tpd_flag!=0);
tpd_flag = 0;
set_current_state(TASK_RUNNING);
if (tpd_touchinfo(&cinfo, &pinfo))
{
//TPD_DEBUG("point_num = %d\n",point_num);
TPD_DEBUG_SET_TIME;
if(point_num >0)
{
// printk("ft6306_point_num_661= %d\n",point_num);
if(cinfo.y[0] < 801 )
tpd_down(480-cinfo.x[0], 800-cinfo.y[0], 200, cinfo.id[0]);
else
tpd_down(cinfo.x[0], cinfo.y[0], 200, cinfo.id[0]);
if(point_num>1)
{
#if 0
tpd_down(cinfo.x[1], cinfo.y[1], 2);
if(point_num >2) tpd_down(cinfo.x[2], cinfo.y[2], 3);
#else
int i=1;
for(; i < point_num ; i ++)
{
if(cinfo.y[0] < 801 )
tpd_down(480-cinfo.x[i], 800-cinfo.y[i], 200, cinfo.id[i]);
else
tpd_down(cinfo.x[0], cinfo.y[0], 200, cinfo.id[0]);
}
#endif
}
input_sync(tpd->dev);
加上那个运算就行了,我的是480x800的
搞定了,谢谢各位!
我在60A上遇到了,悲剧
请问没有人在60A上遇到上边这个情况呢?
请问没有人在60A上遇到上边这个情况呢?
方法是相同的。
你找到这样的地方,也用这方法就行了。
与智能机无关。
