999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux文本模式下觸摸屏的驅動設計及校準

2018-04-15 21:13:03
單片機與嵌入式系統應用 2018年6期
關鍵詞:文本設備系統

(北京明航科技發展有限公司 湖南分公司,長沙 410205)

引 言

本文是在Linux文本模式下對電阻式觸摸屏進行校準。Linux系統是一套開源的操作系統,可以根據實際需要進行裁剪、移植,而且可以非常方便地在Linux系統上開發擴展設備的驅動。

1 觸摸屏工作原理

首先簡單介紹一下觸摸屏的工作原理,用手指或其他物體觸摸安裝在顯示器前端的觸摸屏,然后系統根據手指觸摸的圖標或菜單位置來定位選擇信息輸入。觸摸屏由觸摸檢測部件和觸摸屏控制器組成;觸摸檢測部件安裝在顯示器屏幕前面,用于檢測用戶觸摸位置,接受后送觸摸屏控制器;而觸摸屏控制器的主要作用是從觸摸點檢測裝置上接收觸摸信息,并將它轉換成觸點坐標,再送給CPU,它同時能接收CPU發來的命令并加以執行。

電阻式觸摸屏其實就是一種傳感器,這種屏幕可以用四線、五線、七線或八線來產生屏幕偏置電壓,同時讀回觸摸點的電壓,電壓值和位置信息成正比。這里以四線為例進行說明,當在觸摸屏上按下觸筆時,觸摸屏的4個引腳會產生不同的電壓值,這樣觸摸屏控制器就能檢測到這種變化,從而產生INT_TC中斷,表示觸筆按下。然后在得到CPU指示的情況下,通過A/D轉換,觸摸屏控制器可以根據4個引腳上的位置得到不同電壓值,這就是觸摸屏的工作原理。

2 觸摸屏驅動

觸摸屏的類型有電阻式觸摸屏、電容式觸摸屏、表面聲波觸摸屏、紅外觸摸屏等。可以在網上下載Linux內核源碼,在Linux源碼中有各種觸摸屏的驅動,根據觸摸屏的類型選取適合的觸摸屏驅動。在硬件連接正常的情況下,如果觸摸屏在圖形模式下點擊沒有反應,則需要根據實際情況對觸摸屏的驅動進行修改。本文就USB接口的電阻式觸摸屏進行介紹。

在Linux源碼中driverinput ouchscreen,提供了各種類型的觸摸屏驅動,選取合適的驅動進行修改。觸摸屏的驅動和其他外設驅動的架構類似,包括設備初始化、設備打開、設備關閉、中斷處理等。本文以usbtouchscreen.c為例,對需要改動的部分進行說明。

static struct usb_device_id usbtouch_devices[] = {

#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX

/* ignore the HID capable devices, handled by usbhid */

{USB_DEVICE_HID_CLASS(0x0eef, 0x0001), .driver_info = DEVTYPE_IGNORE},

{USB_DEVICE_HID_CLASS(0x0eef, 0x0002), .driver_info = DEVTYPE_IGNORE},

/* normal device IDs */

{USB_DEVICE(0x3823, 0x0001), .driver_info = DEVTYPE_EGALAX},

{USB_DEVICE(0x3823, 0x0002), .driver_info = DEVTYPE_EGALAX},

{USB_DEVICE(0x0123, 0x0001), .driver_info = DEVTYPE_EGALAX},

....

上文中的0x0123, 0x0001分別為廠商號和設備號,這兩個一般作為設備的標識符。先確定自身的觸摸屏的廠商號和設備號,然后將觸摸屏信息添加進去。driver_info 包含驅動信息,其類型為usbtouch_device_info。以DEVTYPE_EGALAX為例:

static struct usbtouch_device_info usbtouch_dev_info[] = {

#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX

[DEVTYPE_EGALAX] = {

.min_xc= 0x0, //X軸最小坐標

.max_xc= 0x07ff, //X軸最大坐標

.min_yc= 0x0, //Y軸最小坐標

.max_yc= 0x07ff, //Y軸最大坐標

.rept_size= 16, /位數

.process_pkt = usbtouch_process_multi,

//用于中斷回調函數,用于上傳數據

.get_pkt_len = egalax_get_pkt_len,

.read_data = egalax_read_data,

//用于中斷回調函數,用于讀取數據

},

#endif

上文中X、Y軸的最大坐標為0x07ff,這與rept_size = 16相關,16表示觸摸屏的轉換位數,16位的最大轉換值為0x07ff。

程序修改完成后,在命令行make menuconfig中通過Device Drivers→Input device support→Touchscreens→USB Touchscreen Driver選取需要的touchscreen類型。內核配置完成后,對內核進行重新編譯,編譯完成后重啟加載觸摸屏驅動。

3 觸摸屏校準

觸摸屏驅動加載完成后還需要對觸摸屏進行校準,根據電阻式觸摸屏的工作原理可知電壓和坐標位置成正比,將電壓值通過A/D轉換器進行轉換,從而計算出觸摸屏的X軸和Y軸坐標的數值,而校準就是去計算(0, 0)坐標點的電壓值轉換值是多少。

在圖形模式下進行觸摸屏校準比較方便。觸摸屏廠家一般都會提供圖形模式下的校準程序,只需要執行命令文件即可。在Windows系統下進行校準后,將校準數據保存,當切換到Linux圖形系統后,觸摸屏一般不需要再次校準,對觸摸屏進行操作時,將會調用Windows系統保存的校準數據,從而實現觸摸屏的校準。

文本模式下調用觸摸屏時,由于文本界面和圖形界面的差異,圖形界面下觸摸屏的校準數據不能實現文本模式下的觸摸屏校準。下面就文本模式下的觸摸屏校準進行詳細說明。

觸摸屏的校準一般采用的是5點校準法,進入校準界面后,根據提示觸摸出現的校準點,完成后,校準程序將得到的校準數據保存到存儲設備中,校準以后,在使用觸摸屏時,將此數據為基準進行校準。

本文通過tslib軟件對觸摸屏設備進行校準,tslib是電阻式觸摸屏用于校準的一個軟件庫,是一個開源的程序,能夠為觸摸屏驅動獲得的采樣提供諸如濾波、去抖、校準等功能,通常作為觸摸屏驅動的適配層,為上層的應用提供了一個統一的接口。在Linux系統下觸摸屏進行校準的步驟為:

首先將USB觸摸設備接入系統中,在系統中查看該USB觸摸屏的設備號,即通過cat /proc/bus/input/devices獲取環境變量中觸摸屏的event值。

根據獲取的event值,修改/etc/profile,具體修改如下:

export TSLIB_ROOT=/usr/local/bin

export TSLIB_TSDEVICE=/dev/input/eventX

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_CONSOLEDEVICE=none

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

修改tslib/tests/ts_calibrate中的/dev/input/eventX,和環境變量中觸摸屏的event值相匹配。修改tslib/etc/ts.conf,將# module_raw input前的“#”以及module_raw input前的空格去掉。

運行tslib中的./run.sh后,在config.h中添加#define USE_INPUT_API 1。

運行make;make install。

在/usr/local/bin/bin中運行./ts_calibrate即可看到校準界面;校準后將校準數據保存,通過以上步驟可以實現tslib在Linux文本模式下的觸摸屏校準。

結 語

[1] 王建,宋永昌.觸摸屏實用技術(三菱)[M].北京:機械工業出版社,2012.

[2] 科波特.LINUX設備驅動程序(第3版)[M]. 魏永明,耿岳,鐘書毅,等譯.北京:中國電力出版社,2009.

猜你喜歡
文本設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
在808DA上文本顯示的改善
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
主站蜘蛛池模板: 国产尤物视频在线| 尤物国产在线| 无码AV日韩一二三区| 亚洲人成人伊人成综合网无码| 性视频久久| 久久国产精品夜色| 中文字幕日韩丝袜一区| 无码专区在线观看| 日韩欧美国产区| 亚洲日韩图片专区第1页| 无码中文字幕乱码免费2| 日韩精品成人网页视频在线 | 国产毛片网站| 国产手机在线观看| 99在线观看国产| 免费Aⅴ片在线观看蜜芽Tⅴ | 午夜视频日本| 99九九成人免费视频精品| 毛片基地美国正在播放亚洲 | 1769国产精品视频免费观看| 日韩无码视频专区| 欧美三级不卡在线观看视频| 成年人视频一区二区| 日韩国产黄色网站| 亚洲黄色激情网站| 亚洲无码精彩视频在线观看| 久久免费精品琪琪| 欧美性久久久久| 熟妇人妻无乱码中文字幕真矢织江| 爱做久久久久久| 国产精品亚洲αv天堂无码| 国产精品无码翘臀在线看纯欲| 999国产精品永久免费视频精品久久 | 国产亚洲欧美在线人成aaaa| 国产微拍一区二区三区四区| 中国黄色一级视频| 毛片免费观看视频| 欧美激情视频在线观看一区| 高清国产在线| 色综合久久久久8天国| 在线高清亚洲精品二区| 伊人久久精品无码麻豆精品 | www.亚洲一区二区三区| 波多野结衣中文字幕一区二区| 伊人久久大线影院首页| 国产免费怡红院视频| 黄色网站在线观看无码| 精品国产污污免费网站| 欧美特黄一级大黄录像| 精品国产欧美精品v| 欧美日韩国产精品va| 亚洲电影天堂在线国语对白| 国产麻豆福利av在线播放 | 成人精品在线观看| 欧美福利在线观看| 日韩欧美成人高清在线观看| 日韩乱码免费一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 色妞www精品视频一级下载| 国产无码精品在线播放 | 一区二区影院| 亚洲人成影院在线观看| 免费不卡视频| 国产无遮挡猛进猛出免费软件| 国产精品亚洲专区一区| 91po国产在线精品免费观看| 亚洲国产清纯| 日本欧美成人免费| 亚洲妓女综合网995久久 | 精品久久国产综合精麻豆| 亚洲人成网站在线观看播放不卡| 极品国产在线| 久久精品人妻中文视频| 欧美国产中文| 最新国产精品鲁鲁免费视频| 国产丰满成熟女性性满足视频 | 日本伊人色综合网| 噜噜噜综合亚洲| 国产亚洲日韩av在线| 亚洲国产日韩一区| 91欧洲国产日韩在线人成| 国产精品页|