




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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位:用于標識A/D轉(zhuǎn)換是否結(jié)束。第14位:用于使能是否進行預(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é)束標志位的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位用于標識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);//確認A/D轉(zhuǎn)換是否開始
while(!(rADCCON&0x8000))
;//等待A/D轉(zhuǎn)換的結(jié)束return((int)rADCDAT0&0x3ff);//讀取A/D轉(zhuǎn)換的數(shù)據(jù)}練習:用中斷的方式,來進行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,當觸摸筆按下時,控制器發(fā)起中斷請求。中斷類型最終向處理器發(fā)起的中斷請求類型是總中斷INT_ADC,它分為兩種子中斷類型,1.INT_SUB_ADC表示AD采樣完成(觸摸屏X、Y位置采樣完成);2.INT_SUB_TC表示觸摸屏中斷,即筆在屏幕上按下或者離開屏幕。觸摸屏實驗思考:要實現(xiàn)X、Y位置判斷,當然是用自動采樣模式最好;而要判斷觸摸筆的按下與離開,則應(yīng)使用等待中斷模式。問題是怎么把二者結(jié)合起來?方法:采用等待中斷模式來判斷筆的按下與離開;另外設(shè)置一個采樣定時器,每隔一定時間(10ms)對X、Y位置進行采樣。注意問題:(1)只有在筆按下狀態(tài)時才進行位置采樣,筆不在屏幕上時,采樣是沒有意義的。(2)位置采樣采用輪詢模式實現(xiàn),即等待采樣完成;采樣完成后要恢復ADCTSC,重置為等待中斷模式。(3)在普通轉(zhuǎn)換模式,分別采樣模式和自動采樣模式下,ADCDAT0的最高位無效,不能用它來判斷筆的狀態(tài)。只有在觸摸屏中斷(INT_SUB_TC)中才可以用ADCDAT0來判斷觸摸筆狀態(tài)。(4)位置采樣完成后要屏蔽BIT_SUB_ADC。否則,ADC持續(xù)進行采樣,會以很高的頻率(因為采樣頻率很高)發(fā)起INT_SUB_ADC中斷請求,最終向處理器發(fā)起INT_ADC請求,這會嚴重影響處理器的工作。這也是不采用自動采樣,而要用定時器定時采樣的原因。typedefstruct
{
volatileintbtn_state;//筆的狀態(tài)
volatileintx_pos;//x坐標
volatileinty_pos;//y坐標
volatileintint_count;//轉(zhuǎn)換的次數(shù)
volatileintstart_flag;//開始標志
}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當有筆按下或抬起staticvoid__irqTC_interupt(void)//
{
…..中斷清0if(0==g_mouse_state.btn_state)//如果中斷前狀態(tài)為抬起{
g_mouse_state.btn_state=1;//標志按下狀態(tài)
g_mouse_state.start_flag=1;//標志開始狀態(tài)………..打印狀態(tài)和坐標rADCTSC=0x1D3;//設(shè)置為抬起中斷
}
else//如果中斷前狀態(tài)為按下{
g_mouse_state.btn_state=0;//標志抬起狀態(tài)
………….打印狀態(tài)rADCTSC=0xD3;//設(shè)置為按下中斷
}
}定時器中斷定時器中斷每隔10ms中斷一次,進入中斷處理函數(shù),先判斷筆有沒有在屏上,如果沒有就直接返回,如果有就轉(zhuǎn)換X,Y坐標。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);//打印坐標練習:把整個程序?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的坐標為[XD,YD],觸摸屏上每個點PT的坐標為[XT,YT]。要實現(xiàn)觸摸屏上的坐標轉(zhuǎn)換為LCD上的坐標,需要下列公式進行轉(zhuǎn)換:XD=A×XT+B×YT+CYD=D×XT+E×YT+F因為其中一共有六個參數(shù)(A,B,C,D,E,F),因此只需要三個取樣點就可以求得這六個參數(shù)。這六個參數(shù)一旦確定下來,只要給出任意觸摸屏上的坐標點PT,代入這個公式,就可以得到它所對應(yīng)的LCD上像素點的坐標PD。具體的求解過程就不細講,只給出最終的結(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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程借用資質(zhì)協(xié)議范本
- 狙擊精英4 1.03版switch大氣層系統(tǒng)游戲修改代碼
- 年產(chǎn)100萬平方米玻璃生產(chǎn)加工基地建設(shè)項目環(huán)境影響報告表環(huán)評報告表
- 鄧州鋼結(jié)構(gòu)彩鋼棚施工方案
- 門店返利活動方案
- 2025北京石景山七年級(上)期末生物(教師版)
- 漢中庭院假山工程施工方案
- 四層樓房基礎(chǔ)施工方案
- 2024-2025學年下學期高二語文第三單元B卷
- 現(xiàn)代林木樟子松苗木的繁育造林技術(shù)與病蟲害防治措施探討
- 山地回憶-完整版獲獎?wù)n件
- 吸煙有害健康-完整版PPT
- 《結(jié)構(gòu)力學(2)》課程教學大綱(本科)
- 《中華傳統(tǒng)文化》第1課-炎黃始-華夏悠遠教學課件
- 國家體育館QC成果之提高鋼結(jié)構(gòu)現(xiàn)場焊縫的一次合格率
- 隊列訓練教程ppt課件(PPT 86頁)
- 國際商務(wù)(International Business)英文全套完整課件
- 《麻精藥品培訓》ppt課件
- JMP操作簡要培訓
- 立方智能停車場管理系統(tǒng)解決方案(課堂PPT)
- 員工廉潔協(xié)議
評論
0/150
提交評論