?? 新建 文本文檔.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 + -