本文章详细介绍了TQ2440触摸屏在实际应用中的操作方法及遇到的问题,并分享了具体的校准步骤和技巧。适合相关技术爱好者参考学习。
### TQ2440的触摸屏应用与校正
#### 一、TQ2440触摸屏简介
TQ2440是一款基于S3C2440芯片的开发板,广泛应用于嵌入式系统的学习和开发中。其中,触摸屏作为人机交互的重要组成部分,在TQ2440开发板的应用中占据着重要的位置。根据工作原理的不同,触摸屏主要分为电阻式、电容式、红外式等多种类型,而TQ2440开发板采用的是四线制电阻式触摸屏。
#### 二、电阻式触摸屏的工作原理
电阻式触摸屏是一种基于压力感应的屏幕技术,通过测量屏幕上施加的压力来确定触点的位置。具体来说,这种类型的触摸屏由两层透明导电材料组成,并且这两层之间有微小间隔。当用户接触屏幕时,这两层会相互连接形成通路;系统可以读取这个通路上的电压差以计算出具体的触控位置。
#### 三、TQ2440触摸屏接口模式
在TQ2440开发板中,支持多种触摸屏接口模式。其中最常见的两种是等待中断模式和自动(连续)XY坐标转换模式:
1. **等待中断模式**:在这种工作方式下,在触笔按下时触发一个中断信号;此时需要将ADCTSC寄存器设置为0xD3以启用此功能。在处理完中断后,应清除该寄存器的低两位以便后续操作。
2. **自动(连续)XY坐标转换模式**:在这种模式中,系统会持续读取触点的X轴和Y轴位置,并将这些值分别存储于ADCDAT0和ADCDAT1寄存器的低十位。该模式同样会产生中断信号以通知用户触摸事件的发生。
#### 四、触摸屏控制寄存器详解
为了实现触摸屏的功能,需要配置多个关键寄存器:
- **ADCTSC寄存器**:用于设置触摸屏的工作方式和特性,如触笔落下或抬起时的中断选择。
- **ADCUPDN寄存器**:记录当前触笔的状态信息(即是否按下)。
- **ADCDLY寄存器**:定义了在启动模数转换前等待的时间长度。这个延长时间对于保证数据准确性至关重要。
#### 五、触摸屏校正
对电阻式触摸屏进行校正是非常重要的,因为这类屏幕可能会有坐标偏移的问题。通过适当的校正步骤可以确保物理触控位置与LCD显示屏上的像素坐标的精确对应关系。一种常见的方法是使用三点校准技术来完成这一过程。
#### 六、三点校正法原理
三点校正的基本思路是在触摸屏上选取三个不同的点,记录这些点在屏幕和显示器上的坐标值,并通过一系列数学计算得到转换所需的参数(A、B、C、D、E、F)。具体步骤如下:
1. **收集样本数据**:选择三个触控点PT0, PT1, PT2并分别获取它们的物理位置XT0, XT1, XT2和YT0, YT1, YT2以及在LCD屏幕上的像素坐标XD0, XD1, XD2和YD0, YD1,YD2。
2. **计算转换参数**:使用上述数据通过数学公式得出六个校正系数(A、B、C、D、E、F):
[
K = (XT0 - XT2) \times (YT1 - YT2) - (XT1 - XT2) \times (YT0 - YT2)
]
[
A = \frac{[(XD0 - XD2) \times (YT1 - YT2) - (XD1 - XD2) \times (YT0 - YT2)]}{K}
]
3. **应用校正参数**:一旦获得了这些系数,就可以使用它们来计算屏幕上的物理坐标到LCD像素坐标的转换:
[
XD = A \times XT + B \times YT + C
]
[
YD = D \times XT + E \times YT + F
]
这样,在任何时刻触摸屏幕时,都可以通过这些参数准确地将物理坐标映射到LCD的像素位置上。
#### 七、示例代码解析
文中提到的一个简单演示程序旨在当触点中心被按下时绘制一个红色正方形。该程序的关键在于中断处理函数的设计以及对触摸屏进行校准的过程:
- **中断处理**:在触笔压下或抬起时触发相应的中断,并读取当前的坐标值。
- **校准过程**:使用上述方法获取并保存三个点的数据,以便后续操作中直接应用这些参数而无需重新校正。