野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20391|回复: 9

通过LCD横屏坐标下校正得到的校正系数把触摸板上XY的值转换为液晶屏坐标是竖屏坐标?

[复制链接]
发表于 2013-7-12 21:04:49 | 显示全部楼层 |阅读模式
通过LCD横屏坐标下校正得到的校正系数 把 触摸板上X Y的值转换为液晶屏坐标 是竖屏坐标还是横屏坐标?
我认为是横屏坐标,但是为什么开发板上的画板程序在Palette_draw_point函数使用时进行竖屏和横屏坐标的变换?
画板主函数部分程序:
  • while (1)        
  •     {        
  •         if(touch_flag == 1)                        /*如果触笔按下了*/
  •         {
  •                                                 /*获取点的坐标*/
  •             if(Get_touch_point(&display, Read_2046_2(), &touch_para ) !=DISABLE)        
  •             {                 
  •                                                 /*画点*/
  •                 Palette_draw_point(display.x,display.y);                                                                                                 /*画点*/
  •                     }
  •         }
  •                
  •     }

复制代码

代码说明:
Get_touch_point函数:通过 触摸板和LCD坐标转换系数K A B C D E F 把通道X Y的值转换为液晶屏坐标;
Palette_draw_point函数:在LCD指定位置画一个大点(包含四个小点),坐标是横屏
疑问:触摸板和LCD坐标转换系数K A B C D E F是通过Touchl_Calibrate触摸屏校正函数得到的,在此函数中,是在LCD横屏坐标下校正的。我认为通过此校正系数得到的坐标也应该是横屏坐标。然而,Palette_draw_point函数中画点时却进行了坐标变换,将竖屏坐标变换为横屏坐标在进行处理,不知这是为什么?如果不进行坐标变换,显示就不正确了。
还请火哥指导。


回复

使用道具 举报

发表于 2013-7-12 21:30:28 | 显示全部楼层
是横屏坐标,横屏左上角为x=0,y=0,右下角为x=319 y=239
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-13 16:36:59 | 显示全部楼层
是的,我也认为是横屏坐标,但是在画板例程 使用这个坐标显示横屏数据时,却进行了竖屏坐标转横屏坐标的转换,如果不转换的话,显示的数据在竖屏坐标上。在例程上没找到哪有设置,为什么这样?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-16 20:46:06 | 显示全部楼层
火哥,我这个问题没有阐述清楚吗
回复 支持 反对

使用道具 举报

发表于 2013-7-18 09:09:51 | 显示全部楼层
zsz2008610 发表于 2013-7-13 16:36
是的,我也认为是横屏坐标,但是在画板例程 使用这个坐标显示横屏数据时,却进行了竖屏坐标转横屏坐标的转换 ...

野火里面的写LCD屛的文件时什么啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-20 12:28:43 | 显示全部楼层
野火文件中对这个块没有详细说明。
回复 支持 反对

使用道具 举报

发表于 2013-7-20 13:25:59 | 显示全部楼层
在Get_touch_point中已经完成了转换
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-23 09:26:37 | 显示全部楼层
是的,Get_touch_point函数已经完成了转换,但是转换出来的坐标是横屏坐标,还是纵屏坐标?看例程是纵屏坐标,但是在转换过程中使用的是横屏坐标进行计算转换的,这也正是题目所问的问题,
回复 支持 反对

使用道具 举报

发表于 2013-8-3 22:52:51 | 显示全部楼层
楼主问题解决了没,偶现在也有同样的疑问
回复 支持 反对

使用道具 举报

发表于 2013-8-3 23:39:12 | 显示全部楼层
q:是的,Get_touch_point函数已经完成了转换,但是转换出来的坐标是横屏坐标,还是纵屏坐标?看例程是纵屏坐标,但是在转换过程中使用的是横屏坐标进行计算转换的,这也正是题目所问的问题,


a:

液晶是横屏坐标系:横屏左上角为x=0,y=0,右下角为x=319 y=239
x--[0,319]
y--[0,239]


触摸位置如果不是横屏坐标,肯定是对应不起来的。即触摸反馈回来的坐标范围也必须是
x--[0,319]
y--[0,239]

这样才可以达到点对点的效果: pixcel to pixcel,

至于中间过程中的转换,自己可以好好琢磨,自己做参数的调整测试自己的看法,这也正是学习开发板的意义所在。


还有一点就是
定义上来说:
如果X>Y  是横屏
如果Y>X  是数屏
--比如我们平时遇到的手机跟pad,正握情况下,一个默认是竖屏,一个默认是横屏(你可以倒出fb,就可以看到,一个是竖屏,一个是横屏)。


同样道理,开发板在发布之后,每家都已经定下了是横评坐标系还是竖屏坐标系。

因此,触摸那一侧,在调试阶段,如果发现出来的结果,跟实际的显示没有X ,Y坐标范围没有对应上,那么作相应的调整,对应上(p to p)即可。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 06:16 , Processed in 0.035836 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表