资讯详情

ARM系统中触摸屏的中断处理方法

随着嵌入式微处理器性能的提高,集成的外围接口设备越来越多,外围设备和处理器之间的通信通常是中断的。即使没有操作系统,也经常需要动态加载多个外围设备的中断程序,以实现多个外围设备的集中动态管理。同时,可以解决中断功能CPU内部运行速度远快于外部总线速度造成的等待延迟问题。因此,在嵌入式微处理器的应用设计中,中断通常是系统的核心任务之一。引用地址:http://www.eepw.com.cn/article/201706/348428.htm

1 触摸屏

(1)触摸屏简介

随着多媒体信息查询的不断增加,人们越来越关注触摸屏。触摸屏具有耐用、响应速度快、节省空间、交流方便等优点。作为最新的计算机输入设备,它是目前最简单、方便、自然的人机交互方式。它赋予多媒体全新的面貌,是一种全新的多媒体交互设备,极具吸引力。触摸屏由触摸检测部件和触摸屏控制器组成。触摸检测部件安装在显示屏前,用于检测用户的触摸位置,信息后发送到触摸屏控制器;触摸屏控制器的主要功能是从触摸点检测装置接收触摸信息,并将其转换为触摸坐标CPU,同时能接收CPU并执行发送的命令。根据触摸屏的工作原理和传输信息的介质,触摸屏可分为电阻、电容感应、红外和表面声波。采用四线电阻屏。

(2)S3C2410A触摸屏控制器

S3C2410A触摸屏的外部电路主要是控制上下导电层的通断和电压。取电压后,模拟量需要转换为数字量。这部分工作主要依靠S3C2410A芯片中的模数转换器。也就是说,触摸屏的功能实际上分为两部分,即触摸屏的外部电路和S3C2410A芯片自带的A/D转换控制部分。

2 ARM嵌入式操作系统中断处理方法

外部设备在嵌入式系统中的功能主要通过中断机制来实现。ARM作为嵌入式微处理器的典型代表,建立了完整的异常处理机制,以确保系统的实时性和稳定性。

2.1 S3C2410A中断寄存器

每个寄存器在中断过程中扮演着不同的角色,如图1所示。

bf44e6c197e4a931b42e143000a9b27a.png

2.2 中断和中断服务程序

中断硬件逻辑检测到的中断,以某种方式指向中断服务程序的地址,以宏定义的形式出现在第一个文件中。用户在自己的程序中将中断服务程序的地址给出指针,以连接中断服务程序。

为便于用高级语言编写异常处理函数,ARM只要使用关键字,编译器就特别扩展了异常处理函数__irq,编译的函数满足现场保护和恢复异常响应的需要。

在ADS编译器中,__irq专门用于声明IRQ中断服务程序。如果使用。__irq声明函数,那么函数就是IRQ中断服务程序,编译器会自动在函数中添加中断现场保护代码。

3 中断触摸屏驱动

3.1 中断寄存器的设置和使能

S3C2410A触摸屏是带中断的内部中断。中断发生后,SUBSRCPND如果没有相应的位置1,INTSUBMSK屏蔽,那么SRCPND如果没有相应的位置1,INTMSK进一步设置屏蔽INTMOD。这里采用IRQ所以SRCPND有多个位置1(FIQ只有一个),路过PRIORITY选择优先级高的,然后选择INTPND进入相应位置1(只能选择1位)IRQ,让CPU处理。

首先要弄清楚SUBSRCPND与SRCPND关系,几个SUBSRCPND可能对应同一个SRCPND。经过不断总结,得出的相应关系如表1所列。从表中可以看出,应使用触摸屏SUBSRCPND中的INT_TC位,即SUBSRCPND这里定义变量:

#define BIT_SUB_TC(0x19)

对应的是SRCPND中的INT_ADC位,即SRCPND还定义了变量:

#define BIT_ADC(0xl31)

INTMOD与PRIORITY采用默认设置。因此,触摸屏的中断过程可以写为:

3.2 触摸屏中断和触摸屏中断程序

首先使能ARM芯片中断向量。当有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该函数实现了基于中断的触摸屏控制。在实际应用中,该程序设计简单可靠,触摸点坐标值读取准确,无粘性,达到预期效果。

标签: 设备数字电阻屏

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台