新聞中心

        EEPW首頁 > 光電顯示 > 設(shè)計應(yīng)用 > 基于Linux系統(tǒng)的觸摸屏驅(qū)動方案

        基于Linux系統(tǒng)的觸摸屏驅(qū)動方案

        作者: 時間:2012-03-09 來源:網(wǎng)絡(luò) 收藏

        3.3 中斷處理程序及事件報告

        用戶對進(jìn)行按下、抬起和拖動等操作時,觸發(fā)中斷INT_TS,內(nèi)核進(jìn)入到中斷處理函數(shù)tc_irq0進(jìn)行中斷處理。tcirq0中,通過ADC—LOCK鎖機(jī)制保證只有一個程序使用ADC的中斷線,通過讀取ADCDAT0和ADCDAT1寄存器,判斷觸摸操作的狀態(tài),觸摸筆按下時調(diào)用ts_timer_fireO進(jìn)行數(shù)據(jù)轉(zhuǎn)換。當(dāng)數(shù)據(jù)轉(zhuǎn)換完成時產(chǎn)進(jìn)INT_ADC中斷,內(nèi)核進(jìn)入中斷處理函數(shù)adc—irqO,adc_irq()完成觸點信息采集并調(diào)用ts_timer_fire()進(jìn)行事件報告。事件報告流程如圖2所示。

        27.jpg27.jpg

        ts_timer_fire0是主要完成觸點坐標(biāo)信息向應(yīng)用層報告。updown、count為靜態(tài)全局變量,updown觸點狀態(tài),count代表1個jiffies時間內(nèi)ADC轉(zhuǎn)換的次數(shù),count為0,設(shè)置自動X/Y軸坐標(biāo)轉(zhuǎn)換模式,轉(zhuǎn)換完成后產(chǎn)生相應(yīng)的INT_ADC中斷通知轉(zhuǎn)換完畢。count不為0,input_report_abs()函數(shù)向輸入子報告X,Y絕對坐標(biāo)事件,inputreport_key()對應(yīng)按鍵被按下事件,輸入子使用inputsync()將報告的事件組成一個evdev包,通過/dev/input/eventX發(fā)送出去,應(yīng)用程序通過讀取/dev/input/eventX即可獲得事件信息。關(guān)鍵代碼如下:

        4 結(jié)論

        隨著信息技術(shù)的快速發(fā)展,嵌入式技術(shù)與人們的生活越來越緊密,作為一種新型輸入設(shè)備因具有輕便、占用空間少、方便靈活等優(yōu)點,應(yīng)用逐漸普及,甚至在工業(yè)領(lǐng)域也得到了大量的應(yīng)用,提高了我國工控自動化的水平。要充分發(fā)揮觸摸屏的優(yōu)點,嵌入式中設(shè)計至關(guān)重要。嵌入式輸入子實現(xiàn)觸摸屏時,利用了輸入子系統(tǒng)提供標(biāo)準(zhǔn)事件接口,簡化了驅(qū)動設(shè)計,驅(qū)動設(shè)計的重點變成了觸摸屏控制器相關(guān)的硬件操作及功能實現(xiàn),充分體現(xiàn)內(nèi)核代碼的高可重性,對其他類型輸入設(shè)備驅(qū)動程序的設(shè)計有一定參考作用。

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

        linux相關(guān)文章:linux教程



        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 读书| 南木林县| 阿克苏市| 那曲县| 巴彦淖尔市| 益阳市| 苍溪县| 浑源县| 南部县| 和静县| 静乐县| 长武县| 荃湾区| 静宁县| 北宁市| 绥滨县| 霸州市| 彭阳县| 安塞县| 大同市| 古丈县| 清丰县| 万州区| 平潭县| 营山县| 胶南市| 海门市| 房产| 建昌县| 丰都县| 汕头市| 衡阳市| 西丰县| 许昌市| 县级市| 电白县| 个旧市| 屏东县| 丰宁| 合阳县| 三河市|