freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

觸摸屏控制實(shí)驗(yàn)設(shè)計(jì)報(bào)告-文庫吧

2025-07-19 07:08 本頁面


【正文】 同于傳統(tǒng)設(shè)計(jì),而是充分利用了ADS7843中的BUSY信號(hào)線,如圖1所示。ADS7843是一款四線電阻式觸摸屏控制芯片,它主要完成兩件事情:其一,是完成電極電壓的切換;其二,是采集接觸點(diǎn)處的電壓值。它由兩層透明的阻性導(dǎo)體層組成,在導(dǎo)體層中間充滿了用粘性絕緣液體材料做成的隔離層和由導(dǎo)電性能極好的材料構(gòu)成的電極。 觸摸屏工作時(shí),上下導(dǎo)體層相當(dāng)于電阻網(wǎng)絡(luò),如圖2所示。當(dāng)某一層電極加上電壓時(shí),會(huì)在該網(wǎng)絡(luò)上形成電壓梯度。若有外力使得上下兩層在某一點(diǎn)接觸,則在電極未加電壓的另一層可以測得接觸點(diǎn)處的電壓,從而知道接觸點(diǎn)處的坐標(biāo)。比如,若在頂層的電極(X+、X)上加上電壓,則在頂層導(dǎo)體層上形成電壓梯度;當(dāng)有外力使得上下兩層在某一點(diǎn)接觸,在底層就可以測得接觸點(diǎn)處的電壓,再根據(jù)該電壓與電極(X+)之間的距離關(guān)系,知道該處的X坐標(biāo)。然后,將電壓切換到底層電極(Y+、Y)上,并在頂層測量接觸點(diǎn)處的電壓,從而知道Y坐標(biāo)。對(duì)電壓在橫向和縱向?qū)w層之間的切換以及A/D轉(zhuǎn)換,需要先通過串行外設(shè)接口(SPI)往ADS7843發(fā)送控制字,轉(zhuǎn)換完成后再通過SPI讀出電壓轉(zhuǎn)換值。 2 . 2 觸摸屏硬件原理簡介 我們?cè)陂_始編寫觸摸屏驅(qū)動(dòng)程序之前,必須對(duì)硬件的工作原理有個(gè)基本的了解。許多不同的觸摸技術(shù)會(huì)把屏幕某個(gè)位置的壓力或接觸轉(zhuǎn)換成有意義的數(shù)字坐標(biāo)。典型的觸摸技術(shù)包括電阻觸摸屏、聲表面波觸摸屏、紅外線觸摸屏和電容觸摸屏。如果想詳細(xì)了解這些技術(shù)。 這里側(cè)重介紹電阻觸摸屏。電阻觸摸屏非常普及,你會(huì)發(fā)現(xiàn)許多評(píng)估板和開發(fā)套件中都集成了電阻觸摸屏。電阻觸摸屏普及的主要原因是價(jià)格便宜,而且在電氣上可以直接接入用戶的系統(tǒng)中。 之所以叫電阻觸摸屏,是因?yàn)樗鼈儽举|(zhì)上就是電阻分壓器。它們由兩個(gè)電阻薄層組成,這兩個(gè)薄層被非常薄的絕緣層隔開,絕緣層通常以塑料微粒子的形式存在。當(dāng)你觸摸屏幕時(shí),會(huì)使兩個(gè)電阻薄層變形到足以使它們之間發(fā)生電氣連接。然后由軟件通過檢測分壓器上產(chǎn)生的電壓計(jì)算出兩層的短接位置,并最終確定觸摸位置。 電阻觸摸屏分為幾種類型,比如四線,五線和八線。線越多,精度就越高,溫度漂移也越少,但基本的操作是一樣的。在最簡單的四線設(shè)計(jì)中,有一層稱為X軸的電阻層,上面加有一定的電壓,另一個(gè)稱為Y軸的電阻層作為接受層測量對(duì)應(yīng)X軸位置的電壓值。這一過程再反過來執(zhí)行一遍,即Y軸層加電,X軸層用于電壓檢測。 圖2是電阻觸摸屏的簡單等效電路。注意必須獲取二個(gè)完全獨(dú)立的讀數(shù),即X軸位置和Y軸位置數(shù)據(jù)。這些數(shù)據(jù)在四線或五線電阻觸摸屏中是無法同時(shí)讀取的。軟件必須先讀一個(gè)軸,然后再讀另外一個(gè)軸。讀取的順序則無關(guān)緊要。將電阻觸摸屏產(chǎn)生的電壓轉(zhuǎn)換成數(shù)字需要用到模數(shù)轉(zhuǎn)換器(ADC)。直到不久前這個(gè)ADC幾乎一直是主CPU的外圍器件。Burr Brown NS7843或NS7846就是這種ADC控圖2:觸摸屏電路簡單等效電路。制器。該器件為12位的模數(shù)轉(zhuǎn)換器,其內(nèi)嵌的邏輯電路通過交替給一個(gè)薄層加電,再從另外一層轉(zhuǎn)換來控制觸摸屏。雖然可以使用諸如GPIO之類的信號(hào)線來完成薄層加電的切換,但該器件能夠分擔(dān)許多任務(wù),還能提供產(chǎn)生觸摸或筆壓中斷的方式。 2 . 3 基于兩種CPU的參考板 第一塊板是飛思卡爾的MX9823ADS評(píng)估板,采用了飛思卡爾的MC9328MX1處理器。該評(píng)估板可以直接從飛思卡爾的分銷商處定購。評(píng)估套件包括QVGA(240x320)彩色LCD和觸摸屏。 第二塊板采用了夏普LH79524 ARM處理器。這塊夏普的參考板以及集成的顯示和觸摸套件都可以從LogicPD公司處定購。有幾種可更換的顯示套件供選擇,分辨率范圍從QVGA到800x600像素不等。 本文中不提供每個(gè)驅(qū)動(dòng)程序的詳細(xì)代碼,而是介紹驅(qū)動(dòng)程序的設(shè)計(jì)和流程,并重點(diǎn)介紹其中的重要部分。讀者可以從ftp://??偟膩砜矗浖峁┑墓δ芡瓿梢韵逻@些步驟: 1. 配置控制器硬件 2. 判斷屏幕是否被觸摸 3. 獲得穩(wěn)定的、去抖動(dòng)的位置測量數(shù)據(jù) 4. 校準(zhǔn)觸摸屏 5. 將觸摸狀態(tài)和位置變化信息發(fā)送給更高層的圖形軟件 2 . 4 硬件配置 觸摸驅(qū)動(dòng)程序要做的第一件事是配置硬件。對(duì)這些集成控制器來說,這意味著通過向映射到存儲(chǔ)器的寄存器中寫入數(shù)據(jù)將控制器配置成某個(gè)確定狀態(tài)。這一過程是由每個(gè)驅(qū)動(dòng)程序中的TouchConfigureHardware()函數(shù)完成的。 關(guān)于觸摸驅(qū)動(dòng)程序是否應(yīng)該使用中斷驅(qū)動(dòng),事實(shí)上在范例的驅(qū)動(dòng)程序中用的就是中斷驅(qū)動(dòng)方式。坦率地講,我之所以這樣做是因?yàn)槭褂弥袛嗪苡腥?。千萬不要由這個(gè)例子推斷出采用中斷永遠(yuǎn)是最好或最正確的設(shè)計(jì)方式,也不要聽信別人說不采用中斷驅(qū)動(dòng)方式的觸摸驅(qū)動(dòng)程序就是錯(cuò)誤的。 之所以這樣說只是因?yàn)檩喸儗?duì)嵌入式系統(tǒng)程序員來說似乎變成了貶義詞。我曾經(jīng)問過一位客戶,他的輸入設(shè)備采用的是輪詢還是中斷服務(wù)方式。回答是這是嵌入式系統(tǒng),我們不做任何輪詢。我當(dāng)時(shí)感覺問這個(gè)問題時(shí)我就像一個(gè)傻瓜,但進(jìn)一步探討后發(fā)現(xiàn)查詢其實(shí)也是一種合理且值得考慮的方式。如果使用的是RTOS,并且所有任務(wù)經(jīng)常為了等待某類外部事件而被中斷,處理器經(jīng)常處于空閑的循環(huán)狀態(tài),沒有什么有意義的事做。這種情況下使用空閑任務(wù)查詢觸摸屏上的輸入也許是更好的設(shè)計(jì)方式。根據(jù)你的總體系統(tǒng)需求,查詢也可能是一個(gè)值得考慮的合理的設(shè)計(jì)方式。 配置中斷的方法因具體操作系統(tǒng)而異。讀者會(huì)發(fā)現(xiàn)對(duì)于每一個(gè)支持的RTOS都有被(ifdef)限定的代碼段。在所有情況下驅(qū)動(dòng)程序?qū)嶋H會(huì)使用二種不同的中斷: 1 、當(dāng)屏幕被初次觸摸時(shí)喚醒主機(jī)的中斷,稱為PEN_DOWN中斷 2 、當(dāng)完成一組模數(shù)數(shù)據(jù)轉(zhuǎn)換時(shí)的第二種中斷信號(hào) 接下來的問題是我們希望以多快的速度從ADC接收采樣輸入讀數(shù)。采樣速度會(huì)影響我們需要如何配置時(shí)鐘來驅(qū)動(dòng)觸摸屏和ADC。我們希望時(shí)鐘有足夠快的速度來提供可響應(yīng)的輸入和實(shí)現(xiàn)精確的跟蹤,但也不要太快,以至于影響轉(zhuǎn)換精度,或讓系統(tǒng)消耗超過所需的功率。 根據(jù)我的經(jīng)驗(yàn),觸摸屏至少需要以20Hz或50ms間隔的速度向更高層軟件提供位置更新數(shù)據(jù),只要高層軟件跟得上,速度越快越好,我們不太擔(dān)心功耗問題。如果觸摸輸入響應(yīng)比這慢得多,那么在用戶的觸摸輸入和顯示屏上可觀察到的響應(yīng)之間會(huì)出現(xiàn)明顯和煩人的遲滯現(xiàn)象。20Hz的更新速度聽起來并不是太有挑戰(zhàn)性,但提供20Hz的更新速度實(shí)際上要求采樣速度接近200Hz,具體數(shù)值取決于我們?cè)诖_定輸入穩(wěn)定之前準(zhǔn)備采用多少讀數(shù)。為了去抖動(dòng)和對(duì)觸摸輸入位置值進(jìn)行平均,我們需要進(jìn)行過采樣。電阻觸摸屏,特別是便宜的那種,一般會(huì)有很大的噪聲和抖動(dòng)。 圖3:X軸移動(dòng)時(shí)Y軸上的偏移。在向更高層軟件發(fā)送位置更新數(shù)據(jù)之前,驅(qū)動(dòng)程序需要多次采樣每個(gè)軸上的輸入。我們提供的驅(qū)動(dòng)程序默認(rèn)情況下將以最少200Hz(5ms)的采樣速率配置各自處理器上的ADC時(shí)鐘。這樣就能讓驅(qū)動(dòng)程序?qū)斎朐紨?shù)據(jù)進(jìn)行充分的去抖動(dòng)和過濾,并仍能向高層用戶接口軟件提供20Hz的實(shí)際位置更以使這項(xiàng)工作簡單很多。本文提供的驅(qū)動(dòng)程序完全符合該應(yīng)用指南對(duì)如何配置夏普ADC序列控制器提出的建議。 LH79524 ADC本身是一個(gè)令人稱奇的電路系統(tǒng),能夠?qū)崿F(xiàn)完全可編程的狀態(tài)機(jī)和序列器。該ADC無需核心CPU的任何干預(yù)就可以通過編程完成:驅(qū)動(dòng)一個(gè)觸摸層;延時(shí);進(jìn)行測量;驅(qū)動(dòng)另一層;延時(shí);進(jìn)行測量等操作。理解如何對(duì)LH79524 ADC序列器控制單元編程可能是一個(gè)挑戰(zhàn),不過利用夏普()公司提供的應(yīng)用指南可 一旦完成了基本的硬件設(shè)置,接下來就需要一種可靠的方法判斷屏幕是否被觸摸了。如果用戶沒有觸摸屏幕,那么運(yùn)行ADC獲得轉(zhuǎn)換后的讀數(shù)毫無意義。上述兩個(gè)控制器都提供了屏幕是否被觸摸的檢測機(jī)制,并且當(dāng)觸摸事件發(fā)生時(shí)還可選擇是否中斷主處理器。判斷屏幕是否被觸摸的驅(qū)動(dòng)程序的函數(shù)名叫WaitForTouchState()。 當(dāng)控制器處于觸摸檢測模式時(shí),Y軸觸摸層通過一個(gè)上拉電阻上拉到高電平,X軸觸摸層則連接到地。當(dāng)用戶觸摸屏幕的任何地方時(shí),這兩層就發(fā)生短接,Y軸層被拉到低電平。該事件可以在驅(qū)動(dòng)程序內(nèi)部連接到名為PEN_OWN IRQ的中斷發(fā)生機(jī)制。 在正常工作期間,當(dāng)觸摸事件發(fā)生時(shí)驅(qū)動(dòng)程序利用PEN_DOWN IRQ喚醒觸摸驅(qū)動(dòng)任務(wù)。這樣做可以讓驅(qū)動(dòng)程序在屏幕沒有被觸摸時(shí)中斷自己的執(zhí)行,而不消耗任何CPU資源,而一旦用戶觸摸屏幕,驅(qū)動(dòng)程序就被喚醒并進(jìn)入轉(zhuǎn)換模式。我們也可以在轉(zhuǎn)換模式?jīng)]被激活時(shí)停止(disable)ADC時(shí)鐘來節(jié)省功耗。 2 . 4 . 1 讀取觸摸數(shù)據(jù) 在校準(zhǔn)和正常操作期間,我們需要讀取X和Y軸的原始數(shù)據(jù)并去抖動(dòng),然后確定屏幕被觸摸時(shí)是否有穩(wěn)定的讀數(shù)。該過程在兩個(gè)驅(qū)動(dòng)程序中都叫TouchScan()。該過程的要點(diǎn)是: 1 、檢查屏幕是否被觸摸; 2 、采集每個(gè)軸上的多個(gè)原始讀數(shù)用于以后的過濾; 3 、檢查屏幕是否仍在被觸摸。 在執(zhí)行模數(shù)轉(zhuǎn)換時(shí),兩個(gè)控制器都提供了由編程產(chǎn)生延遲的方法,以在給觸摸層加電和開始實(shí)際的模數(shù)轉(zhuǎn)換之間插入一段時(shí)延。飛思卡爾把這段時(shí)延稱作數(shù)據(jù)建立計(jì)數(shù)(DSCNT),在兩層切換后會(huì)有很多個(gè)ASP輸入時(shí)鐘長度的延時(shí)。夏普把這段時(shí)延稱為預(yù)充時(shí)延。 兩種CPU都需要這種時(shí)延,因?yàn)殡娮栌|摸面板是二塊由薄絕緣層隔離的大面積導(dǎo)體,正好形成一個(gè)電容。當(dāng)從將要執(zhí)行模數(shù)轉(zhuǎn)換的層切換到正在加電的層時(shí),需要一定的延時(shí)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1