新闻中心

EEPW首页>测试测量>设计应用> ARM嵌入式系统中触摸屏的中断控制方法

ARM嵌入式系统中触摸屏的中断控制方法

作者: 时间:2010-06-25 来源:网络 收藏

首先必须弄清楚SUBSRCPND与SRCPND之间的关系,几个SUBSRCPND可能对应同一个SRCPND。经过不断总结,得出的对应关系如表1所列。从表中可知,要用到SUBSRCPND中的INT_TC位,即SUBSRCPND[9]。这里定义变量:
#define BIT_SUB_TC(0x19)
与之对应的是SRCPND中的INT_ADC位,即SRCPND[31],又定义变量:
#define BIT_ADC(0xl31)
INTMOD与PRIORITY采用默认设置。因此,可以把的中断过程写为:

本文引用地址://m.amcfsurvey.com/article/195384.htm



3.2中断与触摸屏中断程序
首先使能芯片的中断向量。当有IRQ中断到来,CPU会自动到0x18地址处取指。0x18处的指令是CPU根据中断源算好的。这里触摸屏的中断INT-ADC来了,那么0x18处的指令就是跳转到地址0x9c处。然后就执行“ldr pc,=HandlerINT_ADC”这条指令。这条指令的执行结果就是跳转到“HandlerINT_ADC”处执行。
那么“HandlerINT_ADC”处又是什么指令呢?从访问绝对地址的内存位置“#define pISR_ADC(*(unsigned*)(ISR_STARTADDRESS+0x9c))”可知,“HandlerINT_ADC”处的地址就是_ISR_STARTADDRESS+0x9C。
上述语句把无符号整数_ISR_STARTADDRESS+0x9c强制转换为指针,指向RAM,通过语句“pISR_ADC=(int)touchscreen;”对它进行访问,touchscreen即为所定义的触摸屏中断程序,该中断服务程序必须使用“__irq关键字进行声明。这样,用户在自己的程序中,将中断服务程序的地址赋给该指针,从而将触摸屏的中断与触摸屏的中断程序联系起来。整个触摸屏中断与触摸屏中断程序的联系如图2所示。

结语
本文完成了触摸屏相关中断寄存器的设置,并编写了触摸屏的中断处理程序,采用编写“__irq”函数的实现了基于中断的触摸屏控制。在实际应用中,该程序设计简单可靠,触摸点坐标值读取准确,且无粘滞现象,达到了预期效果。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭