《ARM Linux入门与实践》一书当中,关于触摸屏的那一节有几个地方不理解。
该程序的说明是:“代码并没有使用S3C2410A中的触摸屏控制器,而是通过直接控制FPIO的4个晶体管的导通和截止”
P220:
void Wait_Touch(void)
{
XMON_OFF;
nXPON_OFF;
YMON_ON;
nYPON_OFF;
}
该函数应该对应触屏控制器的等待中断模式,我查了手册这个时候 的引脚状况应该是
XP XM YP YM
上拉 高阻 AIN[5] GND
对应的ADCTSC中的位的作用设置应该是
XP XM YP YM
0 0 1 1
和你上面的设置情况不一样。。。
请问这是为什么?
我顺便附上读取X坐标的函数,该函数是控制四个晶体管,使其处于读取X坐标的状态。
void ReadXPosition(void)
{
XMON_OFF;
nXPON_OFF;
YMON_ON;
nYPON_ON;
}
第二:我理解触屏校准,以前没碰过,看了你的书,查了相关的一些资料。我对触屏校准的理解如下:
触屏产生的坐标和LCD屏幕坐标不一样,所以需要设置一个触屏坐标到LCD像素坐标的转换。这个过程就是在屏幕上输出一个像素坐标,通过点击,产生触屏坐标,然后根据这两个坐标的算法,产生某些参数。。。这些参数最后将被固化在FLAH当中。当然也可以设置为每次程序开始的时候都触屏校准,那就保存为全局变量。(这些转换算法需要我们去查找,还是自己编写?)
我不知道这样的理解是否是错误的?
望各位帮个忙。