ARM7202触摸屏接口设计方案
olatile int *)PioCIC|=0x80; //清落笔中断
*(volatile int *)PioCIM=~0x80; //关落笔中断
*(volatile int *)PioCDR=~0x100; //使落笔中断检测无效,触摸屏扫描电路有效
*(volatile int*)ADCCR=~0x80; //开A/D电源
*(volatile int*)ADCTPCR|=0x80|0x40; //触摸屏读有效,A/D中断有效
}
}
static void TouchINIISR(int level) //触摸屏A/D转换中断服务程序
{
int x[4];
int y[4];
*adcisr |= 0x80; //清触摸屏A/D中断
TouchSample(x,y); //得到X/Y方向数值
*(volatile int*)ADCTPCR=~(0x80|0x40); //触摸屏读无效,触摸屏A/D中断无效
*(volatile int *)PioCDR|=0x100; //使落笔中断检测有效,触摸屏扫描电路无效
if(*(volatile int *)PioCDR0x80) //检测到起笔
{
*(volatile int *)PioCIC|=0x80; //清落笔中断
*(volatile int *)PioCIM|=0x80; //开落笔中断
*(volatile int *)ADCCR|=0x80; //关A/D电源
*(volatile int*)ADCTPCR=~(0x80|0x40); //触摸屏读无效,触摸屏A/D中断无效
}
else //如仍有落笔
{
*(volatile int *)PioCDR=~0x100; //使落笔中断检测无效,触摸屏扫描电路有效
*(volatile int *)ADCTPCR|=0x80|0x40; //触摸屏读有效,触摸屏A/D中断有效
}
}
5 结束语
根据上述对触摸屏工作机制的分析,笔者在实时嵌入式操作系统uc/OS下编写的触摸屏驱动程序应用于基于ARM7202的智能控制器,实践证明系统稳定可靠,满足了在复杂的实时多任务环境中触摸屏快速响应的要求。
- SN2005学习系统 数字语音室解决方案(05-19)
- 以可编程DSP架构应对TD-SCDMA以及TD-LTE带来的设计挑战 (02-14)
- ARM-μCLinux嵌入式系统启动引导的实现(07-26)
- 多核处理器架构及调试方案(03-28)
- 基于DSP的电源解决方案(06-13)
- 间歇性Bug最佳解决方案(09-24)