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

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      關 閉

      新聞中心

      EEPW首頁 > 工控自動化 > 設計應用 > 基于μClinux的觸摸屏軟硬件關鍵技術分析

      基于μClinux的觸摸屏軟硬件關鍵技術分析

      作者: 時間:2008-11-26 來源:網(wǎng)絡 收藏

        的中斷處理函數(shù)

        當筆中斷發(fā)生,程序進入中斷處理函數(shù)。在中斷處理函數(shù)中,將完成對兩個中斷進行處理,分別是外部的觸摸中斷(筆中斷)和SPI數(shù)據(jù)轉換中斷。與這兩個中斷對應的中斷處理函數(shù),是觸摸屏軟件設計的關鍵所在。

        在中斷處理函數(shù)中使用定時器處理時間相關操作。定義函數(shù)set_timer_irq(),如下:

        staticvoidset_timer_irq(structtimer_list*timer,intdelay){

        del_timer(timer);

        timer->expires=jiffies+delay;

        add_timer(timer);

        }

        jiffies是一個表征系統(tǒng)自從啟動以來到當前為止所運行時鐘數(shù)的變量,delay是設定的延長時間(用時鐘數(shù)作為計數(shù)單位)。一旦時鐘數(shù)超過設定值,則觸發(fā)超時函數(shù),在本程序中是handle_timeout( )。引入定時器的目的有兩個:一是可以較為精確地控制系統(tǒng)由于消除電平升降造成信號抖動所需要時間,二是能夠有效控制采樣坐標的數(shù)量,而不必引入占用大量系統(tǒng)資源的簡單延時函數(shù)。使用SPI中斷而產(chǎn)生大量坐標數(shù)據(jù)這一問題在文獻中沒有很好的解決辦法,只是簡單地降低SPI時鐘頻率以取較少的數(shù)據(jù)量。本設計中引入定時器,可以很好地解決上述問題。

        在handle_timeout()函數(shù)中,程序利用條件選擇語句,對觸摸屏(ts_drv_state)進行判斷,如果是非Error狀態(tài),則使能SPI,進入handle_spi_irq(),與ADS7843進行數(shù)據(jù)通訊。在handle_spi_irq()中,程序利用條件選擇語句,根據(jù)觸摸屏(ts_drv_state)來進行數(shù)據(jù)轉換操作,通過向觸摸屏控制芯片發(fā)送前文中提到的,來得到X和Y方向的坐標。具體邏輯可參見程序流程圖。一旦一次轉換完成,程序將根據(jù)點擊狀態(tài)信息(state_counter)來鑒別點擊的性質,在cause_event()函數(shù)中,分別對點擊和移動做出了判斷。判定方法較為簡單,只需將前后兩次采樣坐標之差與移動閾值比較即可得出結論。此外,還區(qū)分了信號誤差和由于筆移動造成的坐標改變,判別閾值可以由用戶自己設定。

        I/O控制

        對于硬件各個參數(shù),包括采樣時間、消除抖動開關、消除抖動時間,都可以通過I/O()在用戶程序里進行設定,避免每次都直接改變,并重新編譯內核所帶來的時間開銷。本程序中對I/O的定義是:staticintts_(structinode*inode,structfile*file,unsignedintcmd,unsignedlongarg);其中,參數(shù)cmd有兩個值,分別為:TS_PARAMS_GET和TS_PARAMS_SET,它們用來指出是獲取參數(shù)還是設定參數(shù)。用戶在調用這個函數(shù)的時候,只需要對這個參數(shù)按照事先約定的格式賦值,就可以方便地獲取或者改變觸摸屏當前參數(shù),arg是指向所傳遞參數(shù)的指針。

        結論

        在獲得觸摸點的原始坐標(數(shù)值范圍由所選用的A/D轉換器位數(shù)決定)后,還要根據(jù)具體使用的液晶屏實際像素進行轉換,以方便圖形界面的后續(xù)開發(fā)??紤]到相鄰兩次的移動閾值,按照如下公式對觸摸屏坐標進行計算:

        

        其中XV為觸摸點X坐標顯示值,XW為觸摸點X坐標測量值(原始坐標值),(1)、(2)、(3)式在觸摸屏初始化時得到,方法是任取觸摸屏X方向左側和右側各一點,以X△V=X△W=1,Xoffrer=0為初始值進行測量得到新的3個參數(shù):X△V、X△W和Xoffrer(在實際使用中此項工作屬于校準零點偏移),然后這3個參數(shù)就不再變動,對于每次測量到的任意觸摸點原始坐標XW,直接代入(4)式求出觸摸點的像素顯示坐標XV。 其中,XV1為觸摸屏左側點坐標顯示值;XV2為觸摸屏右側點坐標顯示值;XW1為觸摸屏左側點坐標測量值;XW2為觸摸屏右側點坐標測量值。

        本設計使用MicroWindows作為用戶界面,定制出每個桌面圖標的坐標區(qū)域,結合觸摸屏的采樣坐標,判斷是否在圖標區(qū)域坐標內,然后做出相應的事件處理。對于本設計中使用的開發(fā)平臺,液晶屏是320240點陣的,物理尺寸為: 80mm60mm,ADS7843選擇12位轉換精度,觸摸屏理論分辨率為80/212=0.020mm,但是由于電平干擾和觸摸動作發(fā)生時的物理干擾,實際的精度無法達到這個值。經(jīng)過測試,在我們平臺上對同一點的點擊精度可以達到1.0mm。本驅動程序可以有效地區(qū)分點擊和移動信號,如果配合手寫識別軟件,能夠作為手寫板的底層驅動使用,實現(xiàn)手寫輸入。


      上一頁 1 2 3 4 5 6 下一頁

      評論


      相關推薦

      技術專區(qū)

      關閉