系统: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
测试图片如下: