首先我运行校准程序得到校准文件
[/mnt/nfs/tslib-1.3/tests/.libs]./ts_calibrate
xres = 640, yres = 480
Took 1 samples...
Top left : X = 585 Y = 3298
Took 2 samples...
Top right: X = 3257 Y = 3289
Took 1 samples...
Bot right: X = 3246 Y = 702
Took 1 samples...
Bot left : X = 580 Y = 753
Took 1 samples...
Middle: X = 1996 Y = 1947
-69.743103 0.202175 -0.000510
539.055481 -0.001745 -0.148005
Calibration constants: -4570684 13249 -33 35327540 -114 -9699 65536
我开始以为是校准的坐标有问题 因为发现LCD的坐标和得到的触摸屏的坐标感觉坐标系是反的.后来又去看关于触摸屏的知识,才知道这正是tslib做的事情,将两个坐标通过算法一一对应转换
然后再看存放在/mnt/yaffs/里的校准文件的内容,发现是写进去了
[/mnt/nfs/tslib-1.3/tests/.libs]cat /mnt/yaffs/pointercal
13249 -33 -4570684 -114 -9699 35327540 65536
运行测试程序
[/mnt/nfs/tslib-1.3/tests/.libs]./ts_test
//这里的printf是自己加的
ts_device open success
ready to put_cross x, y
first time to put_cross
//自己加的printf
//按照输出的samp里面的成员变量定义为
按键发生时间: x坐标 y坐标 压力动作
1253762277.780181: -69 539 0 //轻按
1253762281.350047: -69 539 0
1253762338.250838: -69 539 1 //重按
//自己加的printf
pressure>0
put cross again! c = 0
put cross again! c = 1
//自己加的printf
1253764826.440828: -69 539 2 //拖动
pressure>0
put cross again! c = 0
put cross again! c = 1
//按照这样应该就是画了光标了,因为没有在屏幕上看到光标因为是坐标的x值为负数,而且按其他的地方,坐标值都不变.
这会是什么问题呢????
还是校准的不正确导致的么??
请高手知道的指教一二!谢谢!!!!
[ 此贴被XChinux在2007-08-12 23:10重新编辑 ]