nuc972做的板,buildroot构建的带qt5.6的文件系统,接的是个7寸的800*480的屏幕,电阻触控面板。
画了个界面,之前用usb鼠标点击,没发现问题。
现在用电阻触摸面板,发现点击很多次以后才有可能有效。
反复试了几次,发现qt程序如果设的比较小,不占满800*480的话,按键都是有效的。
设为800*480后,按键基本失灵,很难按出来。
高度略小一点,比如高度设为450,则大部分按键没问题,有时候,最下边一排,或最左边一排按键不灵敏。
最近编辑记录 Gentlepig (2020-06-05 16:33:42)
离线
ts_test基本正常,四角和其它区域效果一致。
说基本正常,是因为,运行ts_test用手指画线,有时候画的线,中间有一小截断开的。
编译内核时,关于触摸面板的adc选项里有个sample counter值,默认是200,我改过成0,结果运行ts_test后光标不怎么跟手了。
改为20,用手指画线,不光有断开的地方,有的时候是向某个方向凸出个三角尖峰来。所以后来又改回200了。
离线
ts_test基本正常,四角和其它区域效果一致。
说基本正常,是因为,运行ts_test用手指画线,有时候画的线,中间有一小截断开的。
编译内核时,关于触摸面板的adc选项里有个sample counter值,默认是200,我改过成0,结果运行ts_test后光标不怎么跟手了。
改为20,用手指画线,不光有断开的地方,有的时候是向某个方向凸出个三角尖峰来。所以后来又改回200了。
发个图看看
离线
串口右移了10,下移了50:
串口无右移,只下移了50:
现在是将主窗口向下移动到底端了,最左侧的一排按钮失灵,有的按键按下去结果却是其他按键被按下了。(视频应该横着看)
最近编辑记录 Gentlepig (2020-06-05 16:00:48)
离线
ts_test 的图片也发一张看看
离线
sample_count为200的截图:
sample_count为20的截图:
最近编辑记录 Gentlepig (2020-06-05 15:58:32)
离线
这是全屏后的效果,按键基本失灵:
离线
sample_count 是啥?没听说过
离线
ts_test 测试只有一些误触, 不至于Qt程序全屏完全按不了吧。
离线
用的 NUC972 自带触摸屏外设?
修改这个配置文件, /etc/ts.conf
这里面有各种滤波器参数, 调调改改。
# Access plugins
################
# Uncomment if you wish to use the linux input layer event interface
module_raw input
# For other driver modules, see the ts.conf man page
# Filter plugins
################
# Uncomment if first or last samples are unreliable
# module skip nhead=1 ntail=1
# Uncomment if needed for devices that measure pressure
module pthres pmin=1
# Uncomment if needed
# module debounce drop_threshold=40
# Uncomment if needed to filter spikes
# module median depth=5
# Uncomment to enable smoothing of fraction N/D
# module iir N=6 D=10
# Uncomment if needed
# module lowpass factor=0.1 threshold=1
# Uncomment if needed to filter noise samples
module dejitter delta=100
# Uncomment and adjust if you need to invert an axis or both
# module invert x0=800 y0=480
# Uncomment to use ts_calibrate's settings
module linear
离线
# Uncomment if you wish to use the linux input layer event interface
module_raw input
# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
# module_raw collie
# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
# module_raw corgi
# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
# module_raw ucb1x00
# Uncomment if you're using an HP iPaq h3600 or similar
# module_raw h3600
# Uncomment if you're using a Hitachi Webpad
# module_raw mk712
# Uncomment if you're using an IBM Arctic II
# module_raw arctic2
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
因为在fb_test里基本正常,所以我觉得还是qt5的问题,不知道是哪里配置错误了。
最近编辑记录 Gentlepig (2020-06-05 17:05:13)
离线
sample_count 是啥?没听说过
刚看了下,是adc sample counter。
离线
/etc/ts.conf 你可以自行调整,直到调到ts_test 最优为止。
谢谢。现在ts_test虽然不是最优,但效果也能用。qt5程序全屏触控失灵,我觉得和ts.conf关系不大吧。
离线
这是/etc/profile的内容:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
if [ "$PS1" ]; then
if [ "`id -u`" -eq 0 ]; then
export PS1='\u@h \w# '
else
export PS1=']u@h \w$ '
fi
fi
export PAGER='/bin/more '
export EDITOR='/bin/vi'
# Source configuration files from /etc/profile.d
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
unset i
done
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x480:mmsize=200x120:offset=0x
export QT_QPA_GENERIC_PLUGINS=tslib:$TSLIB_TSDEVICE
启动程序的命令:/mnt/nfs/calculator
现在的感觉就像是,全屏后,触控坐标和显示坐标对应不上了。
最近编辑记录 Gentlepig (2020-06-05 17:08:32)
离线
电阻屏触摸采样率200有点浪费了,正常情况下80-120就能保证画线不断了。如果不需要画线等连续追踪坐标的操作,只需要点击操作,可以设定更低的数值。
离线
电阻屏触摸采样率200有点浪费了,正常情况下80-120就能保证画线不断了。如果不需要画线等连续追踪坐标的操作,只需要点击操作,可以设定更低的数值。
谢谢。设过20,图在上边,效果有点差,设成0时,光标就不跟手了。
离线
好,明天试试。
离线
点击屏幕左上角,按说坐标应该是(0, 0):
点击屏幕右上角,按说坐标应该是(800, 0):
点击屏幕右下角,按说坐标应该是(800, 480):
点击屏幕左下角,按说坐标应该是(048, 0):
点击屏幕中心保持不松开,按说坐标应该是(400, 240):
松开不再保持点击屏幕中心,按说坐标应该是(400, 240):
执行fb-test测试程序,因为布线时R和B整组对调了,所以红蓝显示对调了。但不知为何上下分层?
离线
小结下测试结果:
x方向:
最左边好像不是从0开始的,大概是50开始。依次向右移动过程中发现,按下是一个值,松开后的值大概是按下值的4倍多。因此向右移动大概到200像素位置以后,松开的坐标值都是799了。
y方向:
先说一直保持按下的状态,从上向下滑动,是从0开始逐渐增大,增大到大概400(与实际位置一致)后,又开始往小的方向变,最降到80多。
如果点击后不保持按下状态,则数据有可能是479,也可能是正常值。
离线
有点诡异, 用: ts_print 和 ts_print_raw 这两个程序试一试,
还是怀疑你的tslib校准文件(/etc/pointercal)有问题,
或者 Qt用了错误的校准文件。
ts_print测试是正常的。
-------------------------------------
感谢。
环境变量里,加入以下这两句后,没问题了...
export QT_QPA_EGLFS_TSLIB=1
export QT_QPA_FB_TSLIB=1
最近编辑记录 Gentlepig (2020-06-08 10:23:56)
离线