主题 : 自己写的触控屏Driver在mini6410有问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 11610
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
综合积分: 28 分
注册时间: 2009-12-14
最后登录: 2013-01-24
楼主  发表于: 2011-02-22 10:07

 自己写的触控屏Driver在mini6410有问题

自己写的触控屏Driver在mini6410有问题


之前我自己买了一个触控屏
也帮触控屏写了一个 Driver,
这个 Driver 在 mini2440 使用正常.

现在我将触控屏装在mini6410上面,
然后将触控屏Driver 移植到mini6410上面,
Driver 可以运作,但是一但手指起来后,手指再次按下触控屏,
虽然按下触控屏的位置是刚刚离开的位置,
cursor却跑到别的地方,真的很奇怪,

我现在report 的方式如下

input_report_abs(input, ABS_X, x);
input_report_abs(input, ABS_Y, y);
input_report_key(input, BTN_TOUCH, 1);
input_report_abs(input, ABS_PRESSURE, 1);
input_sync(input);


不过我打开mini6410 的 Touch driver,
他们report 的方式好奇怪,我完全看不懂,

********mini6410 的 Touch driver
if (updown)
{
if(downflag==0)
notify_data(ts->xp, ts->yp, 1);
}
else
notify_data(0, 0, 0);


//------------------------------------------------ --------------------------
static inline void notify_data(unsigned x, unsigned y, unsigned down)
{
ts_status = ((x << 16) | (y)) | (down << 31);
ts_ready = 1;
wake_up_interruptible(&ts_waitq);
}

有人了解mini2440 与mini6410 触控屏driver 的差别吗?