闡述Linux觸摸屏驅動
操作系統對于經常應用電腦的用戶非常的重要,一個好的操作系統,能更好的節省學習的時間。本文講解Linux觸摸屏驅動開發,在Linux觸摸屏驅動中,最好的范例莫過于mc68328digi.c的實現。本文把其中用到的結構解析一下。
1,struct ts_pen_info
該結構是觸摸屏的核心數據結構。用戶程序和驅動程序的交互就是通過該數據結構完成的。結構體里面的x,y坐標和狀態是gui中事件驅動的原始數據源。
2,環形隊列
gui程序通過read完成對ts_pen_info的提取。而在內核中維護了一個環形隊列,只要隊列不為空,將立即返回數據給應用程序。
3,中斷驅動機制
觸摸屏是輸入設備,因此使用的是中斷驅動機制。只要有觸摸事件發生,即向環形隊列里面填充一項。
4,定時器的必要性
觸摸屏的中斷處理函數必然啟動一個定時器。定時器的使用是為了檢測出Drag操作。當按下觸摸屏一直沒有松開時,中斷只會相應一次。這和觸發方式關系不大,不是沿觸發和電平觸發的問題。主要是觸摸屏的中斷處理函數沒有處理到松開是不會開放中斷的。在這段時間內,就是通過定時器不停的啟動,檢測觸摸屏的新坐標的。
5,misc驅動
觸摸屏采用Misc結構的驅動。
這5點是Linux觸摸屏驅動的核心,理解這些,閱讀和編寫自己的觸摸屏驅動都會游刃有余。希望會對你有所幫助。
【編輯推薦】