触摸屏坐标缩水的问题你们遇到过吗?

弄了个电容屏,坐标采集我输出来的值是对的,结果传送到屏幕上就只有驱动里的四分之一。
就是说我采集出来的坐标是(800,480),那么在屏幕上变成点击在(200,120)的位置。
好怪异。虽然我X4就好了。但是无法理解。
有人遇到过吗?
...全文
180 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
改X_SCALE_FACTOR和Y_SCALE_FACTOR发现没有用。 现在我是直接在DdsiTouchPanelGetPoint返回的地方坐标*4。 测试了一下没有啥问题。
  • 打赏
  • 举报
回复
谢谢 bigwatercar,我看看。 我第一个电容屏坐标并没有这个问题。奇怪了。代码基本一样,只是中断不一样而已。
  • 打赏
  • 举报
回复
看到帖子标题,估计楼主可能就是这块的问题,刚好之前改过这块代码,碰到同样的问题。wince6的触摸的时候鼠标光标不跟随,直接在驱动中加入SetCursorPos,使用CalX和CalY,发现坐标差了4倍,只能自己做了个除法。
  • 打赏
  • 举报
回复
驱动的ISR中采样是显示分辨率的4倍,isr中的回掉函数应该是shell提供的,推断shell中将touch的采样坐标做转换,对应到显示坐标上。
  • 打赏
  • 举报
回复
这个是驱动里头处理的。我知道。 楼主看一下 tchmain.c 里头有如下定义:
// Scale factor to support sub-pixel resolutions
#define X_SCALE_FACTOR 4
#define Y_SCALE_FACTOR 4
为了支持sub-pixel resolutions
91program 2014-09-01
  • 打赏
  • 举报
回复
还没有在 WinCE 下搞过电容屏
  • 打赏
  • 举报
回复
引用 3 楼 lan120576664 的回复:
会不会做均值算法,算了之后没有计算回来.
电容屏不需要像电阻屏一样,中断后采集n个点求平均。 虽然mmd层有MIN_CAL_COUNT,但是改变这个值坐标点并不会变。
  • 打赏
  • 举报
回复
引用 2 楼 woshi_ziyu 的回复:
这个就需要看驱动了 看一下采集出来的数据在驱动做了什么改动才导致这样的结果
从iic读到的坐标值是我想要的,但是将坐标直接给驱动接口的用来保存坐标的指针时的话,就发现最后点击的位置坐标是驱动采集的1/4。 之前也做过一款电容屏,并不需要X4.
lan120576664 2014-09-01
  • 打赏
  • 举报
回复
会不会做均值算法,算了之后没有计算回来.
woshi_ziyu 2014-09-01
  • 打赏
  • 举报
回复
这个就需要看驱动了 看一下采集出来的数据在驱动做了什么改动才导致这样的结果

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧