最近在練習寫投射電容面板的linux driver(i2c介面),
平台是s3c2440, 有內建電阻式觸控LCD(240*320).
確認driver正確的將座標報給input event,
在user space open input event後用printf報出座標,
與driver內用printk報出的座標是一致的.
但游標的行為模式不對勁, 測試用的投射電容面板是絕對座標,
但游標的動作卻像是相對座標.
重編linux kernel, 將電阻式觸控的模組移除,
此時系統上只剩投射電容這一個指標裝置,
但依然動作不正確, 應該不是互相干擾的問題.
改從qt的程式中直接open /dev/input/event1 (投射電容的input event),
將qt的globalX, globalY以及從qt opne input event讀到的座標show出來,
投射電容driver也將報給input的座標用printk印出來看.
結果qt讀到的input event, 跟driver報出去的input event不符合....
投射電容觸控面板的 xy max是(1024,1024),
touch左上角,driver報出(54,14), qt讀到的input event是(20,16),
touch右下角,driver報出(950,997), qt讀到的input event是(948, 905).
globa xy跟手指移動的方向一致, 但位置不一致...
請問
1.該修改哪邊, 才能讓qt正確的接收投射電容的絕對座標?
2.為何qt讀到的input event跟driver報出來的event不一致?