在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于MinuGUI的嵌入式智能儀器觸摸屏設計

            基于MinuGUI的嵌入式智能儀器觸摸屏設計

            作者: 時間:2013-05-09 來源:網絡 收藏

            2.1 驅動的編寫

            驅動在Linux框架下屬于字符設備驅動。

            驅動的入口函數(shù)為ads7843 _ ts_ init ( ) , 在該函數(shù)中,初始化I/O口, 注冊筆中斷和設備節(jié)點, 完成設備文件系統(tǒng)創(chuàng)建標準字符設備的初始化工作[ 8 - 10 ]。設備操作的結構通過ads7843_ts_fop s定義。

            STatic struct file_operatiONs ads7843_ts_fop s = {

            read: ads7843_ts_read,

            poll: ads7843_ts_poll,

            ioctl: ads7843_ts_ioctl,

            fasync: ads7843_ts_fasync,

            open: ads7843_ts_open,

            release: ads7843_ts_release,

            };

            這樣, 只需根據(jù)實際需要正確定義該結構中的幾個函數(shù)過程, 就可完成設備驅動的開發(fā)。

            設備被打開時, 首先執(zhí)行到ads7843_ts_open ( )函數(shù),并在該函數(shù)中, 初始化一個緩沖區(qū), 用于存儲坐標數(shù)據(jù)。在觸摸屏被按下后, 系統(tǒng)首先觸發(fā)中斷, 在ads7843_ts_interrup t ( )中斷程序中, 判斷in_timehandle全局變量的狀態(tài), in_ timehandle在定時器函數(shù)中被改變, 也就是說進入中斷后, 先經過定時器延時20ms, 完成觸摸屏的軟件去抖, 再判斷觸摸屏是否被按下。然后通過read_xy ()函數(shù)分別切換至X和Y 通道, 完成觸點電壓的AD轉換, 并讀取12 位坐標值。

            static void ads7843_ ts_ interrup t ( int IRq, void 3 dev_ id,

            struct p t_regs3 regs)

            {

            sp in_lock_irq (tsdevlock) ;

            if ( in_timehandle 》 0)

            {

            sp in_unlock_irq (tsdevlock) ;

            return;

            }

            disable_irq ( IRQ_GPIO_ADS7843) ;

            ads7843_ts_starttimer ( ) ;

            sp in_unlock_irq (tsdevlock) ;

            }

            應用程序調用read ( ) 函數(shù)時, 進入驅動的ads7843_ts_read ( )接口函數(shù)。在該接口函數(shù)中獲取采樣結果, 判斷是否要對坐標進行校準, 將最終結果寫入到緩沖區(qū)中,并通過copy_to_user ( )函數(shù)將其從內核空間復制到用戶空間, 以使應用程序能夠使用。在ads7843_ts_read ( )函數(shù)中采用了非阻塞型操作, 使得在沒有數(shù)據(jù)到達的時候立即返回, 然后用異步觸發(fā)fasync ( )來通知數(shù)據(jù)的到來。ads7843 _ ts_poll ()函數(shù)用于驅動程序的非阻塞操作, ads7843_ts_fasync ( )函數(shù)用于驅動異步觸發(fā)。ads7843_ts_ioctl ( )函數(shù)中, 提供了可從用戶態(tài)控制的參數(shù), 如觸摸屏是否在驅動中校準、屏幕的最大最小坐標值等。ads7843_ts_release( )函數(shù)用來關閉觸摸屏設備。

            2.2 觸摸屏的校準

            開發(fā)過程中,觸摸屏作為輸入設備與LCD配合使用。為了能使從觸摸屏采樣得到坐標與屏幕的顯示坐標對應,還需要做一個映射, 也就是要對觸摸屏進行校準。如圖4所示, 所用的觸摸屏和液晶屏都是標準的矩形, 只要安裝合理,可以認為觸摸屏的X 方向坐標只與顯示屏X 方向相關, Y方向坐標只與顯示屏的Y方向相關。假設顯示屏的分辨率是W ×H, 顯示區(qū)域的左上角對應的觸摸屏采樣坐標是( x1 , y1 ) ,右下角對應的坐標是( x2 , y2 ) , 那么觸摸屏上任意一點采樣坐標( x, y) 與顯示屏坐標( xd , yd )的對應關系可以按照如下公式計算:

            這樣, 在測得( x1 , y1 )和( x2 , y2 ) 點觸摸屏的采樣值后, 利用上述公式編制校準函數(shù),在觸摸屏工作的過程中, 計算出實際觸摸點對應的顯示坐標,完成觸摸屏的校準。

            基于MinuGUI的嵌入式智能儀器觸摸屏設計

            圖4 觸摸屏的校準

            3 觸摸屏用戶應用程序

            創(chuàng)建的Linux設備文件系統(tǒng)觸摸屏節(jié)點為/dev/ts.在應用程序中,可以像打開文件一樣用open函數(shù)打開設備文件, 然后用read ()函數(shù)讀取由驅動傳遞到用戶空間的數(shù)據(jù)。應用程序的開發(fā)采用MiniGU I進行, MiniGU I是由北京飛漫公司開發(fā), 可應用于實時系統(tǒng)中的輕量級圖形用戶界面支持系統(tǒng)。其函數(shù)接口與Windows SDK類似, 開發(fā)方便。

            MiniGU I的輸入抽象層( IAL: Input Abstract Layer)提供了對觸摸屏、鼠標等輸入設備的豐富支持, 并支持PXA255處理器平臺。只要經過簡單的設置就可以在應用程序中使用觸摸屏。配置安裝MiniGU I時, 使用22enable2px255bial項, 由于在安裝MiniGU I時采用了內嵌資源的靜態(tài)編譯方式, 所以在編譯之前, 需在MiniGU I的src / sysres/目錄下建立mgetc2pxa1c 文件,并在其中用下面語句設置系統(tǒng)參數(shù), 將觸摸屏設為輸入設備。

            static char * SYSTEM_VALUES[ ] = { “ fbcon” ,“ PX255B” , “ /dev/ ts” , “ none” };

            MiniGU I對觸摸屏輸入的處理方式如圖5 所示。

            基于MinuGUI的嵌入式智能儀器觸摸屏設計

            圖5 MiniGUI 中的觸摸屏輸入

            MiniGUI 通過觸摸屏設備驅動程序接收原始的輸入數(shù)據(jù), 把它轉換為MiniGUI 抽象的觸摸屏事件和數(shù)據(jù)。

            相關的底層事件處理例程把這些觸摸事件轉換為上層的觸摸消息, 放到相應的消息隊列中。應用程序通過消息循環(huán)獲取這些消息, 交由窗口過程處理。編制針對觸摸屏的應用程序時,需要做的只是在窗口接收到諸如MSG _LBUTTONDOWN 等觸屏消息時, 調用相應的語句, 完成預期操作。

            4 結論

            觸摸屏接口增強了儀器系統(tǒng)的人機交互功能,方便了操作人員的使用; 接口電路和驅動程序的模塊化方便了儀器的后續(xù)改進和新產品的開發(fā),并可根據(jù)需要移植應用到各種不同場合。的觸摸屏接口已經成功應用在故障診斷巡檢儀器中,其工作穩(wěn)定,運行可靠,具有很好的實用價值。

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            上一頁 1 2 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉