Tiny6410一线触摸屏tslib的移植

原文地址:Tiny6410一线触摸屏tslib的移植 作者:背包客

系统:Fedora 9

 编译工具:arm920t-eabi

 编译目标:tslib1.4.1  地址:http://www.pudn.com/downloads194/sourcecode/unix_linux/detail913304.html   

 
 由于tiny6410的一线触摸,所以需要改程序,如下:
      
   打开tslib/plugins/input-raw.c

  把其中的ts_input_read 函数改成如下:


static int ts_input_read(struct tslib_module_info *inf,
    struct ts_sample *samp, int nr)
{
 //printf ("HEAD=== ts_input_read in INPUT-RAW.Cn");
 struct tslib_input *i = (struct tslib_input*)inf;
 struct tsdev *ts = inf->dev;
 struct input_event ev;
 int ret = nr;
 int total = 0;
 unsigned long jjts;

 while(total<nr)
 {
 ret =read(ts->fd, &jjts,sizeof(jjts));

 //if (ret==-1) continue;

 if (ret==-1) return 0;

 samp->pressure=(jjts>>31)& 0x01;
 samp->x=(jjts>>16)& 0xffff;
 samp->y=jjts & 0xffff;

 samp++;
 total++;
 }

 ret=total;
 return ret;

}


编译步骤:

                              
1)  ./autogen.sh                                     用于生成configure脚本

2)  echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache          产生一个cache文件arm-linux.cache,欺骗configure

3)  CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/opt/mini6410/tslib_install    --cache-file=arm-linux.cache

4)  make

5)  make install

  编译成功后在目标位置产生/bin、/etc、/include、/lib 4个文件夹
(11)修改/opt/tslib/etc/ts.conf 文件,删除其中内容,改为

           module_raw input

           module pthres pmin=1
           module variance delta=30
           module dejitter delta=100
           module linear

第一行是tslib从linux的输入设备读取数据时需要用到的模块,这里指定的模块为input,具体需要用到哪个模块,需要参考其他数据。
第二行的pthres为Tslib提供的触摸屏灵敏度门槛插件。
第三行的variance为Tslib提供的触摸屏滤波算法插件。
第四行的dejitter为Tslib 提供的触摸屏去噪算法插件。
第五行linear为Tslib提供的触摸屏坐标变换插件。

(12)将/opt/mini6410/tslib_install文件夹拷贝到开发板/opt/mini6410/下

(13)在开发板设置环境变量/etc/profile

export QTDIR=/opt/qt-4.6.3-arm-ins
export QPEDIR=/opt/qt-4.6.3-arm-ins
export TSLIB_ROOT=/opt/mini6410/tslib_install
export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/touchscreen-1wire
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:/dev/touchscreen-1wire
export QWS_DISPLAY=LinuxFb:/dev/fb0
#export QWS_SIZE=480x480
export QT_QWS_FONTDIR=/opt/qt-4.6.3-arm-ins/lib/fonts
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH

 

校准触摸屏:

   cd /opt/mini6410/tslib_install/bin

   ./ts_calibrate

测试触摸屏:

  ./ts_test

测试图片如下:

你可能感兴趣的:(移植,tslib,Tiny6410,一线触摸屏)