📄 新建 文本文档.txt
字号:
触摸屏驱动程序的流程及关键函数
驱动程序主要设计思想是:驱动程序在初始化结束后,进入空闲状态,等待中断的到来。一旦笔中断(pen_irq)发生,则进入中断处理程序,进行数据采样、转换和传输,同时,程序对各种不同的情况进行鉴别和异常处理。
触摸屏软件流程如图3所示。在驱动程序中设定了触摸屏所处的7个不同状态,分别用从-1到5的数字表征,这7个状态构成了一个触摸屏状态机,系统根据当前状态做出下一步的处理,如表1所示。整个软件设计根据功能可以划分为5个部分,分别是初始化、设备打开、读操作、中断处理以及I/O控制,下面具体介绍每一部分。
驱动程序初始化
在mc68328digi_init()中向内核注册设备驱动函数:err=misc_register(&mc68328_digi),在init_ts_settings()中设定触摸屏的当前参数:内核版本号、笔移动判别阈值、采样时间、消除抖动开关、消除抖动时间等参数,这些均由用户根据自己的液晶屏以及精度要求来定制,也可以在应用程序中用I/O控制函数ioctl()来设定,
检测代码
CMDATA EQU 30H
XDATA_H EQU 31H
XDATA_L EQU 32H
YDATA_H EQU 33H
YDATA_L EQU 34H
;初始化寄存器
MOVLW 02H
MOVWF TRICB ;定义B口方向
MOVLW 90H
:2003-09-10)MOVWF TRISC ;定义C口方向
BCF SSPCON, 5
MOVLW 10H
MOVWF SSPCON ;初始化SSPCON
BSF SSPCON, 5 ;启动SPI
;获取X,Y坐标
GetXY
BCF PORTB, 0 ;
MOVLW 0D4H ;获取X坐标命令
MOVWF SSPBUF ;发送命令
BUSY
BTFSC PORTB, 1 ;判忙?
GOTO BUSY
MOVF SSPBUF, W ;12位数据
MOVWF XDATA_H ;XDATA_H存放高字节
MOVF SSPBUF, W
MOVWF XDATA_L ;XDATA_L 存放低字节
…………………………… ;Y坐标数据同样处理
RETLW 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -