




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
ARM實驗AD轉換以及觸摸屏實驗AD轉換:又稱為模數轉換,是將模擬信號轉換為計算機能夠處理的數字信號。s3c2440集成了8通道10位CMOSA/D轉換器。ADCCON第15位:用于標識A/D轉換是否結束。第14位:用于使能是否進行預分頻。13--6:則存儲的是預分頻數值,因為A/D轉換的速度不能太快,所以要通過預分頻處理才可以得到正確的A/D轉換速度,如我們想要得到A/D轉換頻率為1MHz,則預分頻的值應為49。5--3:表示的是A/D轉換的通道選擇。第2位:可以實現A/D轉換的待機模式。第1位:用于是否通過讀取操作來使能A/D轉換的開始。第0位:則是在第1位被清零的情況下用于開啟A/D轉換。1.A/D轉換的數據可以通過中斷或查詢方式訪問。中斷方式的總體轉換時間為從A/D轉換器開始到轉換數據的讀取,可能由于中斷服務程序的返回時間和數據訪問時間而延遲。查詢方式是通過檢查轉換結束標志位的ADCCON[15],可以確定讀取ADCDAT寄存器的時間。2.還提供了其它啟動A/D轉換的方法。在轉換的讀啟動模式ADCCON[1]設置為1后,A/D轉換啟動同時讀取數據。寄存器ADCDAT0的低10位用于存儲A/D轉換后的數據。寄存器ADCCON的第15位用于標識A/D轉換是否結束。intreadADC(void){ rADCCON=(1<<14)|(49<<6);//設置預分頻器和rADCCON&=~((7<<3)|(1<<2));//A/D通道0,正常模式
rADCCON|=0x1;//啟動A/D轉換
while(rADCCON&0x1);//確認A/D轉換是否開始
while(!(rADCCON&0x8000))
;//等待A/D轉換的結束return((int)rADCDAT0&0x3ff);//讀取A/D轉換的數據}練習:用中斷的方式,來進行AD轉換,旋轉滑動變阻器,在超級終端上顯示數字。 觸摸屏接口MINI2440原理圖觸摸屏接口模式觸摸屏有四種接口模式:(1)普通轉換模式與通用AD轉換的使用方式很相似。通過設置ADCCON來初始化,并以一個讀和寫ADCDAT0的操作完成。(2)X/Y位置分別轉換模式又可以分成兩種模式:X位置轉換模式和Y位置轉換模式。這兩種模式下,觸摸屏分別把X、Y位置轉換數據寫入到ADCDAT0和ADCDAT1中之后,向中斷控制器發起中斷請求。(3)自動(順序)X/Y位置轉換模式觸摸屏控制器依次轉換X和Y位置,把轉換結果分別寫入到ADCDAT0和ADCDAT1中,然后向中斷控制器發起中斷請求。(4)等待中斷模式設置ADCTSC為0xD3,當觸摸筆按下時,控制器發起中斷請求。中斷類型最終向處理器發起的中斷請求類型是總中斷INT_ADC,它分為兩種子中斷類型,1.INT_SUB_ADC表示AD采樣完成(觸摸屏X、Y位置采樣完成);2.INT_SUB_TC表示觸摸屏中斷,即筆在屏幕上按下或者離開屏幕。觸摸屏實驗思考:要實現X、Y位置判斷,當然是用自動采樣模式最好;而要判斷觸摸筆的按下與離開,則應使用等待中斷模式。問題是怎么把二者結合起來?方法:采用等待中斷模式來判斷筆的按下與離開;另外設置一個采樣定時器,每隔一定時間(10ms)對X、Y位置進行采樣。注意問題:(1)只有在筆按下狀態時才進行位置采樣,筆不在屏幕上時,采樣是沒有意義的。(2)位置采樣采用輪詢模式實現,即等待采樣完成;采樣完成后要恢復ADCTSC,重置為等待中斷模式。(3)在普通轉換模式,分別采樣模式和自動采樣模式下,ADCDAT0的最高位無效,不能用它來判斷筆的狀態。只有在觸摸屏中斷(INT_SUB_TC)中才可以用ADCDAT0來判斷觸摸筆狀態。(4)位置采樣完成后要屏蔽BIT_SUB_ADC。否則,ADC持續進行采樣,會以很高的頻率(因為采樣頻率很高)發起INT_SUB_ADC中斷請求,最終向處理器發起INT_ADC請求,這會嚴重影響處理器的工作。這也是不采用自動采樣,而要用定時器定時采樣的原因。typedefstruct
{
volatileintbtn_state;//筆的狀態
volatileintx_pos;//x坐標
volatileinty_pos;//y坐標
volatileintint_count;//轉換的次數
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)//如果中斷前狀態為抬起{
g_mouse_state.btn_state=1;//標志按下狀態
g_mouse_state.start_flag=1;//標志開始狀態………..打印狀態和坐標rADCTSC=0x1D3;//設置為抬起中斷
}
else//如果中斷前狀態為按下{
g_mouse_state.btn_state=0;//標志抬起狀態
………….打印狀態rADCTSC=0xD3;//設置為按下中斷
}
}定時器中斷定時器中斷每隔10ms中斷一次,進入中斷處理函數,先判斷筆有沒有在屏上,如果沒有就直接返回,如果有就轉換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轉換模式
rADCCON=(1<<14)+(49<<6);//設置頻率
rADCCON|=0x01;//開始轉換
while(rADCCON&0x01);//AD轉換開始且該位在開始后清零
while(!(rADCCON&0x8000));//等待AD轉換結束
while(!(rSUBSRCPND&(1<<10)));//等待產生中斷
rINTSUBMSK|=BIT_SUB_ADC;//關AD中斷
g_mouse_state.x_pos=(rADCDAT0&0x3FF);
g_mouse_state.y_pos=(rADCDAT1&0x3FF);
g_mouse__count++;//取x,y的值,并且記數器+1rSUBSRCPND=BIT_SUB_ADC;//中斷清0UART0_printf(“[x=%3d,y=%3d]\n”,g_mouse_state.x_pos,g_mouse_state.y_pos);//打印坐標練習:把整個程序寫完,然后在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;
}
}思考:這段代碼有何作用?設LCD上每個點PD的坐標為[XD,YD],觸摸屏上每個點PT的坐標為[XT,YT]。要實現觸摸屏上的坐標轉換為LCD上的坐標,需要下列公式進行轉換:XD=A×XT+B×YT+CYD=D×XT+E×YT+F因為其中一共有六個參數(A,B,C,D,E,F),因此只需要三個取樣點就可以求得這六個參數。這六個參數一旦確定下來,只要給出任意觸摸屏上的坐標點PT,代入這個公式,就可以得到它所對應的LCD上像素點的坐標PD。具體的求解過程就不細講,只給出最終的結果。已知LCD上的三個取樣點為:PD0,PD1,PD2,它們所對應的觸摸屏上的三個點為:PT0,PT1,PT2。A,B,C,D,E,F這六個參數最終的結果都是一個分式,而且都有一個共同的分母,為:
K=(XT0-XT2)×(YT1-YT2)-(XT1-XT2)×(YT0-YT2)那么這六個參數分別為:
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青春激蕩社團助力活力溢計劃
- 2025經營許可證轉讓合同范本
- 冥婚協議合同樣本
- 京東物資采購合同樣本
- 優化流程的工作計劃設計
- app運營合作合同樣本
- 不過戶 購房 合同標準文本
- 2025合作伙伴代理合同示范文本
- 云南買房代購合同樣本
- 農村房契轉讓合同樣本
- 未帶有效居民身份證考生承諾書
- 國際市場營銷(第三版)-教學課件
- 弱電機房驗收標準
- 《數據的收集與整理》說課稿課件
- 腳手架或模板支架立桿底地基承載力計算
- 超導材料應用舉例PPT課件
- 2020年超星爾雅重說中國近代史通識課期末考試答案
- 急性肺動脈栓塞診斷及介入治療經驗分享PPT課件
- 初中數學知識框架
- 輪胎式裝載機檢測報告(共5頁)
- 電動機可逆運行控制電路
評論
0/150
提交評論