版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
ARM實驗AD轉(zhuǎn)換以及觸摸屏實驗AD轉(zhuǎn)換:又稱為模數(shù)轉(zhuǎn)換,是將模擬信號轉(zhuǎn)換為計算機能夠處理的數(shù)字信號。s3c2440集成了8通道10位CMOSA/D轉(zhuǎn)換器。ADCCON第15位:用于標(biāo)識A/D轉(zhuǎn)換是否結(jié)束。第14位:用于使能是否進(jìn)行預(yù)分頻。13--6:則存儲的是預(yù)分頻數(shù)值,因為A/D轉(zhuǎn)換的速度不能太快,所以要通過預(yù)分頻處理才可以得到正確的A/D轉(zhuǎn)換速度,如我們想要得到A/D轉(zhuǎn)換頻率為1MHz,則預(yù)分頻的值應(yīng)為49。5--3:表示的是A/D轉(zhuǎn)換的通道選擇。第2位:可以實現(xiàn)A/D轉(zhuǎn)換的待機模式。第1位:用于是否通過讀取操作來使能A/D轉(zhuǎn)換的開始。第0位:則是在第1位被清零的情況下用于開啟A/D轉(zhuǎn)換。1.A/D轉(zhuǎn)換的數(shù)據(jù)可以通過中斷或查詢方式訪問。中斷方式的總體轉(zhuǎn)換時間為從A/D轉(zhuǎn)換器開始到轉(zhuǎn)換數(shù)據(jù)的讀取,可能由于中斷服務(wù)程序的返回時間和數(shù)據(jù)訪問時間而延遲。查詢方式是通過檢查轉(zhuǎn)換結(jié)束標(biāo)志位的ADCCON[15],可以確定讀取ADCDAT寄存器的時間。2.還提供了其它啟動A/D轉(zhuǎn)換的方法。在轉(zhuǎn)換的讀啟動模式ADCCON[1]設(shè)置為1后,A/D轉(zhuǎn)換啟動同時讀取數(shù)據(jù)。寄存器ADCDAT0的低10位用于存儲A/D轉(zhuǎn)換后的數(shù)據(jù)。寄存器ADCCON的第15位用于標(biāo)識A/D轉(zhuǎn)換是否結(jié)束。intreadADC(void){ rADCCON=(1<<14)|(49<<6);//設(shè)置預(yù)分頻器和rADCCON&=~((7<<3)|(1<<2));//A/D通道0,正常模式
rADCCON|=0x1;//啟動A/D轉(zhuǎn)換
while(rADCCON&0x1);//確認(rèn)A/D轉(zhuǎn)換是否開始
while(!(rADCCON&0x8000))
;//等待A/D轉(zhuǎn)換的結(jié)束return((int)rADCDAT0&0x3ff);//讀取A/D轉(zhuǎn)換的數(shù)據(jù)}練習(xí):用中斷的方式,來進(jìn)行AD轉(zhuǎn)換,旋轉(zhuǎn)滑動變阻器,在超級終端上顯示數(shù)字。 觸摸屏接口MINI2440原理圖觸摸屏接口模式觸摸屏有四種接口模式:(1)普通轉(zhuǎn)換模式與通用AD轉(zhuǎn)換的使用方式很相似。通過設(shè)置ADCCON來初始化,并以一個讀和寫ADCDAT0的操作完成。(2)X/Y位置分別轉(zhuǎn)換模式又可以分成兩種模式:X位置轉(zhuǎn)換模式和Y位置轉(zhuǎn)換模式。這兩種模式下,觸摸屏分別把X、Y位置轉(zhuǎn)換數(shù)據(jù)寫入到ADCDAT0和ADCDAT1中之后,向中斷控制器發(fā)起中斷請求。(3)自動(順序)X/Y位置轉(zhuǎn)換模式觸摸屏控制器依次轉(zhuǎn)換X和Y位置,把轉(zhuǎn)換結(jié)果分別寫入到ADCDAT0和ADCDAT1中,然后向中斷控制器發(fā)起中斷請求。(4)等待中斷模式設(shè)置ADCTSC為0xD3,當(dāng)觸摸筆按下時,控制器發(fā)起中斷請求。中斷類型最終向處理器發(fā)起的中斷請求類型是總中斷INT_ADC,它分為兩種子中斷類型,1.INT_SUB_ADC表示AD采樣完成(觸摸屏X、Y位置采樣完成);2.INT_SUB_TC表示觸摸屏中斷,即筆在屏幕上按下或者離開屏幕。觸摸屏實驗思考:要實現(xiàn)X、Y位置判斷,當(dāng)然是用自動采樣模式最好;而要判斷觸摸筆的按下與離開,則應(yīng)使用等待中斷模式。問題是怎么把二者結(jié)合起來?方法:采用等待中斷模式來判斷筆的按下與離開;另外設(shè)置一個采樣定時器,每隔一定時間(10ms)對X、Y位置進(jìn)行采樣。注意問題:(1)只有在筆按下狀態(tài)時才進(jìn)行位置采樣,筆不在屏幕上時,采樣是沒有意義的。(2)位置采樣采用輪詢模式實現(xiàn),即等待采樣完成;采樣完成后要恢復(fù)ADCTSC,重置為等待中斷模式。(3)在普通轉(zhuǎn)換模式,分別采樣模式和自動采樣模式下,ADCDAT0的最高位無效,不能用它來判斷筆的狀態(tài)。只有在觸摸屏中斷(INT_SUB_TC)中才可以用ADCDAT0來判斷觸摸筆狀態(tài)。(4)位置采樣完成后要屏蔽BIT_SUB_ADC。否則,ADC持續(xù)進(jìn)行采樣,會以很高的頻率(因為采樣頻率很高)發(fā)起INT_SUB_ADC中斷請求,最終向處理器發(fā)起INT_ADC請求,這會嚴(yán)重影響處理器的工作。這也是不采用自動采樣,而要用定時器定時采樣的原因。typedefstruct
{
volatileintbtn_state;//筆的狀態(tài)
volatileintx_pos;//x坐標(biāo)
volatileinty_pos;//y坐標(biāo)
volatileintint_count;//轉(zhuǎn)換的次數(shù)
volatileintstart_flag;//開始標(biāo)志
}MOUSE_STATE;staticMOUSE_STATEg_mouse_state;初始化:rADCDLY=50000;//延時寄存器
rADCCON=(1<<14)+(49<<6);rADCTSC=0xD3;pISR_ADC=(unsignedint)TouchPanelIsr;
rINTMSK&=(~BIT_ADC);
rINTSUBMSK&=(~BIT_SUB_TC);
rINTSUBMSK|=BIT_SUB_ADC;
ADCTSC=011010011當(dāng)有筆按下或抬起staticvoid__irqTC_interupt(void)//
{
…..中斷清0if(0==g_mouse_state.btn_state)//如果中斷前狀態(tài)為抬起{
g_mouse_state.btn_state=1;//標(biāo)志按下狀態(tài)
g_mouse_state.start_flag=1;//標(biāo)志開始狀態(tài)………..打印狀態(tài)和坐標(biāo)rADCTSC=0x1D3;//設(shè)置為抬起中斷
}
else//如果中斷前狀態(tài)為按下{
g_mouse_state.btn_state=0;//標(biāo)志抬起狀態(tài)
………….打印狀態(tài)rADCTSC=0xD3;//設(shè)置為按下中斷
}
}定時器中斷定時器中斷每隔10ms中斷一次,進(jìn)入中斷處理函數(shù),先判斷筆有沒有在屏上,如果沒有就直接返回,如果有就轉(zhuǎn)換X,Y坐標(biāo)。void__irqTimer(void)
{
if(0==g_mouse_state.start_flag)return;
if(0==g_mouse_state.btn_state)return;
rINTSUBMSK&=(~BIT_SUB_ADC);//允許AD中斷
rADCTSC=0x0C;//自動x,y轉(zhuǎn)換模式
rADCCON=(1<<14)+(49<<6);//設(shè)置頻率
rADCCON|=0x01;//開始轉(zhuǎn)換
while(rADCCON&0x01);//AD轉(zhuǎn)換開始且該位在開始后清零
while(!(rADCCON&0x8000));//等待AD轉(zhuǎn)換結(jié)束
while(!(rSUBSRCPND&(1<<10)));//等待產(chǎn)生中斷
rINTSUBMSK|=BIT_SUB_ADC;//關(guān)AD中斷
g_mouse_state.x_pos=(rADCDAT0&0x3FF);
g_mouse_state.y_pos=(rADCDAT1&0x3FF);
g_mouse__count++;//取x,y的值,并且記數(shù)器+1rSUBSRCPND=BIT_SUB_ADC;//中斷清0UART0_printf(“[x=%3d,y=%3d]\n”,g_mouse_state.x_pos,g_mouse_state.y_pos);//打印坐標(biāo)練習(xí):把整個程序?qū)懲?,然后在MINI2440上運行,并能夠看到效果,并指出有什么問題?
if(0==(rSUBSRCPND&BIT_SUB_TC))
{
rSRCPND|=BIT_ADC;
rINTPND|=BIT_ADC;
if(0==g_mouse_state.btn_state)
{
rADCTSC=0xD3;
}
else
{
rADCTSC=0x1D3;
}
}思考:這段代碼有何作用?設(shè)LCD上每個點PD的坐標(biāo)為[XD,YD],觸摸屏上每個點PT的坐標(biāo)為[XT,YT]。要實現(xiàn)觸摸屏上的坐標(biāo)轉(zhuǎn)換為LCD上的坐標(biāo),需要下列公式進(jìn)行轉(zhuǎn)換:XD=A×XT+B×YT+CYD=D×XT+E×YT+F因為其中一共有六個參數(shù)(A,B,C,D,E,F),因此只需要三個取樣點就可以求得這六個參數(shù)。這六個參數(shù)一旦確定下來,只要給出任意觸摸屏上的坐標(biāo)點PT,代入這個公式,就可以得到它所對應(yīng)的LCD上像素點的坐標(biāo)PD。具體的求解過程就不細(xì)講,只給出最終的結(jié)果。已知LCD上的三個取樣點為:PD0,PD1,PD2,它們所對應(yīng)的觸摸屏上的三個點為:PT0,PT1,PT2。A,B,C,D,E,F這六個參數(shù)最終的結(jié)果都是一個分式,而且都有一個共同的分母,為:
K=(XT0-XT2)×(YT1-YT2)-(XT1-XT2)×(YT0-YT2)那么這六個參數(shù)分別為:
A=[(XD0-XD2)×(YT1-YT2)-(XD1-XD2)×(YT0-YT2)]/KB=[(XT0-XT2)×(XD1-XD2)-(XD0-XD2)×(XT1-XT2)]/KC=[YT0×(XT2×XD1-XT1×XD2)+YT1×(XT0×XD2-XT2×XD0)+YT2×(XT1×XD0-XT0×XD1)]/K
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考?xì)v史一輪復(fù)習(xí)方案專題四世界政治制度的演變與發(fā)展專題綜合測驗含解析人民版
- 2024高考地理一輪復(fù)習(xí)第二部分人文地理-重在運用第一章人口的變化第17講人口的空間變化學(xué)案新人教版
- 以德育人始于行立德無聲潤于心-2024年秋季學(xué)期學(xué)校德育工作(匯報)總結(jié)【課件】
- 小學(xué)2024-2025年第二學(xué)期數(shù)學(xué)教學(xué)計劃
- 2024CSCO免疫檢查點抑制劑相關(guān)的毒性管理指南
- 建筑機電設(shè)備安裝通病
- 二零二五年度餐飲店員工福利保障合同范本3篇
- “乘風(fēng)破浪的姐姐”中不同人格類型的心理分析
- 大豆加工發(fā)展前景分析
- 月球的各種圓缺形態(tài)課件說課講解
- 居家養(yǎng)老上門服務(wù)投標(biāo)方案(技術(shù)方案)
- 中藥貼敷課件
- 公路工程勘察設(shè)計投標(biāo)方案(技術(shù)方案)
- 培訓(xùn)透平發(fā)電機
- 人教版九年級物理全一冊 20.2電生磁同步練習(xí)(含答案)
- 小收納 大世界-整理與收納知到章節(jié)答案智慧樹2023年黑龍江幼兒師范高等??茖W(xué)校
- 冷凝水的管理
- 讓我們的家更美好教案人教部編版道德與法治五年級下冊
- 鋼筋直螺紋機械連接安裝質(zhì)量檢查記錄表
- 銀行分管財務(wù)副行長個人述職報告4篇全文
- 年終頒獎PPT模板
評論
0/150
提交評論