ARM9報(bào)告-基于ARM9的數(shù)據(jù)采集應(yīng)用程序設(shè)計(jì)_第1頁
ARM9報(bào)告-基于ARM9的數(shù)據(jù)采集應(yīng)用程序設(shè)計(jì)_第2頁
ARM9報(bào)告-基于ARM9的數(shù)據(jù)采集應(yīng)用程序設(shè)計(jì)_第3頁
ARM9報(bào)告-基于ARM9的數(shù)據(jù)采集應(yīng)用程序設(shè)計(jì)_第4頁
ARM9報(bào)告-基于ARM9的數(shù)據(jù)采集應(yīng)用程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第1章 需求分析1.1實(shí)驗(yàn)設(shè)計(jì)題目基于ARM9的數(shù)據(jù)采集應(yīng)用程序設(shè)計(jì)。1.2 設(shè)計(jì)目的鞏固、實(shí)踐本課程所學(xué)理論知識(shí),由于這門課程是理論與實(shí)踐相結(jié)合且實(shí)踐性很強(qiáng)的課程,該課程的學(xué)習(xí)目標(biāo)是培養(yǎng)學(xué)生嵌入式開發(fā)的基本能力,通過實(shí)驗(yàn)設(shè)計(jì)培養(yǎng)學(xué)生查閱、合理運(yùn)用參考資料的能力。1.3 設(shè)計(jì)任務(wù)及要求1.3.1 設(shè)計(jì)任務(wù)通過S3C2410X(ARM9)的ADC采集實(shí)驗(yàn)箱電位器的值,旋轉(zhuǎn)電位器時(shí)可在屏幕上看到當(dāng)前采集值的變化。實(shí)驗(yàn)箱有三個(gè)電位器,學(xué)生可自選一個(gè)或多個(gè)。可增功能:(1)中斷功能:按下中斷按鍵觸發(fā)中斷,中斷時(shí)三個(gè)LED燈閃爍一次,且屏幕上打印正在中斷的提示。(2)報(bào)警功能:設(shè)定一個(gè)臨界值(如500)

2、,當(dāng)采集的值超過此臨界值時(shí),燈閃爍報(bào)警,三個(gè)電位器可與三個(gè)燈一一對(duì)應(yīng)。、1.3.2 報(bào)告要求(1)實(shí)現(xiàn)的功能(2)軟硬件平臺(tái)(3)硬件原理分析及原理圖(4)硬件驅(qū)動(dòng)的實(shí)現(xiàn)步驟及分析(5)代碼設(shè)計(jì):所有需要編寫的代碼(如adc.c、adc.h、main.c、Makefile等)、代碼的注釋。(6)運(yùn)行及調(diào)試的步驟(7)心得體會(huì)1.4 實(shí)驗(yàn)平臺(tái)硬件平臺(tái):博創(chuàng)經(jīng)典UP-NETARM2410實(shí)驗(yàn)箱(S3C2410處理器)。軟件平臺(tái):eclipse+keil+PUTTY(串口調(diào)試助手)。第2章 實(shí)驗(yàn)分析2.1硬件原理在ADC這章中相應(yīng)的硬件原理圖截圖如下:圖1 硬件原理圖2.2設(shè)計(jì)原理由硬件原理圖可知A

3、D和DA轉(zhuǎn)化與AIN0,AIN1,AIN2三個(gè)引腳有關(guān),在gpio一章中查找可知這三個(gè)引腳均不是多功能引腳。在AD和DA轉(zhuǎn)化時(shí)也不需要用到時(shí)鐘信號(hào)。A/D轉(zhuǎn)換器是模擬信號(hào)和CPU之間聯(lián)系的接口,它將連續(xù)變化的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),以供計(jì)算機(jī)和數(shù)字系統(tǒng)進(jìn)行分析、處理、存儲(chǔ)、控制和顯示。在編寫驅(qū)動(dòng)是可以通過查找數(shù)據(jù)手冊(cè)。2.3選擇通道通過底板AD-DA-CAN圖可知三個(gè)ADC電位器對(duì)應(yīng)AINO2,所以選擇通道2。ADCCON5:3=010;ADCCON&=(0x7<<3);ADCCON|=0x1<<4;2.4時(shí)鐘配置與分頻ADC控制寄存器(ADCCON)地址為0x

4、58000000。 圖2 ADC控制寄存器圖時(shí)鐘配置,CLKCON15 = 0b1,表示使能 CLKCON |= 0x1 << 15;時(shí)鐘分頻:圖3 時(shí)鐘分頻圖A / D轉(zhuǎn)換器當(dāng)預(yù)定標(biāo)器值N,預(yù)定數(shù)據(jù)值是(N + 1),初始狀態(tài)是0XFF ADCCON14=0b1,ADCCON13:6=0xFF;ADCCON|=0x1<<14;ADCCON|=0xFF<<6;2.5選擇模式(如圖2-3)圖4 選擇模式圖模式選擇:選擇正常模式 ADCCON2=0;ADCCON&=(0x1<<2);2.6設(shè)置啟動(dòng)設(shè)置啟動(dòng)AD轉(zhuǎn)換的方式:讀啟動(dòng)ADCCON&a

5、mp;=(0x1<<1);啟動(dòng)AD轉(zhuǎn)換ADCCON|=0X1;2.7實(shí)現(xiàn)功能判斷采樣轉(zhuǎn)換完成以及讀取while(!(ADCCON&(1<<15);data=ADCDAT0&0xFFF;2.8列出寄存器列表如下圖ADC控制寄存器:圖5 ADC控制寄存器圖ADC觸摸屏控制寄存器(ADCTSC)如下:圖6 ADC觸摸屏控制寄存器圖ADC啟動(dòng)延時(shí)寄存器(ADCDLY):圖7 DC啟動(dòng)延時(shí)寄存器圖ADC轉(zhuǎn)換數(shù)據(jù)寄存器(ADCDAT0) 如下:圖8 ADC轉(zhuǎn)換數(shù)據(jù)寄存器ADC轉(zhuǎn)換數(shù)據(jù)寄存器(ADCDAT1) 如下:圖9 ADC轉(zhuǎn)換數(shù)據(jù)寄存器2.9相關(guān)寄存器定義圖10

6、 相關(guān)寄存器定義ADC觸摸屏控制寄存器(ADCTSC)地址為0x58000004ADC啟動(dòng)延時(shí)寄存器(ADCDLY) 地址為0x58000008ADC轉(zhuǎn)換數(shù)據(jù)寄存器(ADCDAT0) 地址為0x5800000CADC轉(zhuǎn)換數(shù)據(jù)寄存器(ADCDAT1) 地址為0x58000010時(shí)鐘寄存器(CLKCON)地址為0x4C00000C2.10查數(shù)據(jù)手冊(cè)根據(jù)底板確定與AIN0有關(guān)在gpio中查找AIN0查找結(jié)果如下圖:圖11 在gpio中查找AIN0查找結(jié)果圖第三章 實(shí)驗(yàn)步驟以及相關(guān)程序設(shè)計(jì)3.1 eclipse工程運(yùn)行步驟3.1.1啟動(dòng)串口調(diào)試首先連接串口線,一端連實(shí)驗(yàn)箱的RS232-0,另一端連電腦

7、主機(jī)的串口。雙擊桌面的,出現(xiàn)下圖界面:圖12 雙擊后的界面圖選中Serial,如下圖所示:圖13選中Serial后的界面圖將“9600”改為“115200”,如下圖所示:圖14將“9600”改為“115200”后的界面圖點(diǎn)擊左邊樹形列表中的“Serial”:圖15 點(diǎn)擊左邊樹形列表中的“Serial”后的界面圖將右邊最后一項(xiàng)改為“None”:圖16將右邊最后一項(xiàng)改為“None”的界面圖點(diǎn)擊“Open”按鈕,出現(xiàn)如下串口調(diào)試界面:圖17 出現(xiàn)如下串口調(diào)試界面的界面圖撥動(dòng)實(shí)驗(yàn)箱電源開關(guān),若串口調(diào)試界面中有如下顯示,表示串口通了,配置好了:圖18撥動(dòng)實(shí)驗(yàn)箱電源開關(guān)的界面圖按電腦鍵盤的任意鍵,光標(biāo)停在

8、vivi處,等待eclipse程序運(yùn)行。3.1.2啟動(dòng)H-JTAG先確定實(shí)驗(yàn)箱電源打開,并口線連接好,然后單擊“開始->所有程序->H-JTAG->H-JTAG”,可以自動(dòng)檢測(cè)到CPU類型,如下:圖19 自動(dòng)檢測(cè)到CPU類型的界面圖3.1.3運(yùn)行Eclipse工程以及編寫相關(guān)程序創(chuàng)建Eclipse工程,雙擊桌面的eclipse。圖20 雙擊后的界面圖選擇工作空間(存放源代碼及工程文件的地方),點(diǎn)擊OK按鈕,打開如下界面:圖21選擇工作空間的界面圖進(jìn)入主界面后,單擊File ->New-> C Project菜單項(xiàng),Eclipse將打開一個(gè)標(biāo)準(zhǔn)對(duì)話框,輸入proje

9、ct_s3c2410 (希望新建工程的名字)單擊Finish即可創(chuàng)建一個(gè)新的工程,建議對(duì)每個(gè)新建工程使用獨(dú)立的文件夾。創(chuàng)建Keil工程,點(diǎn)擊如下菜單:圖22進(jìn)入如下界面:圖23進(jìn)入主界面后的界面圖點(diǎn)擊Next按鈕,如下圖圖24點(diǎn)擊Next按鈕的界面圖選擇S3C2410A設(shè)備,點(diǎn)擊Finish按鈕,這時(shí)會(huì)打開keil軟件,關(guān)閉keil工程。添加文件到工程??截惱蠋煱l(fā)的工程文件夾“project_s3c2410空”中的所有內(nèi)容到D:eclipse_projects_cygproject_s3c2410工程目錄下,在Eclipse軟件下,按F5刷新工程目錄,再按照上課講的新建文件夾和文件,添加程序,

10、按ctrl+s保存,按ctrl+b編譯工程。調(diào)試工程,點(diǎn)擊下圖菜單:圖25添加程序的界面圖右鍵單擊,下面紅顏色部分:圖26右鍵單擊的界面圖出現(xiàn)如下菜單:圖27 出現(xiàn)的界面圖點(diǎn)擊New菜單,出現(xiàn)如下界面:圖28點(diǎn)擊New菜單后的界面圖點(diǎn)擊Browse.,出現(xiàn)下面界面:圖29點(diǎn)擊Browse.后的界面圖選中l(wèi)ed,點(diǎn)擊OK按鈕,出現(xiàn)如下界面:圖30選中l(wèi)ed點(diǎn)擊OK按鈕的界面圖點(diǎn)擊Browse.,出現(xiàn)下面界面:圖31點(diǎn)擊Browse.后的界面圖選中l(wèi)ed.uvproj,然后點(diǎn)擊OK按鈕,出現(xiàn)如下界面:圖32選中l(wèi)ed.uvproj的界面圖點(diǎn)擊Target Options按鈕,出現(xiàn)如下界面:圖33

11、點(diǎn)擊Target Options按鈕的界面圖選擇Output標(biāo)簽,界面如下:圖34選擇Output標(biāo)簽的界面圖點(diǎn)擊Select Folder for Objects按鈕,出現(xiàn)如下界面:圖35 點(diǎn)擊Select Folder for Objects的界面圖點(diǎn)擊向上按鈕,如下圖:圖36點(diǎn)擊向上按鈕的界面圖點(diǎn)擊OK按鈕,出現(xiàn)如下界面:圖37點(diǎn)擊OK按鈕的界面圖點(diǎn)擊Debug標(biāo)簽,出現(xiàn)如下界面:圖38點(diǎn)擊Debug標(biāo)簽的界面圖選擇H-JTAG ARM,然后點(diǎn)擊OK按鈕,出現(xiàn)如下界面:圖39選擇H-JTAG ARM的界面圖點(diǎn)擊Debug按鈕,開始調(diào)試程序,如下圖:圖40點(diǎn)擊Debug按鈕的界面圖出現(xiàn)下圖

12、的對(duì)話框時(shí),點(diǎn)“Yes”。圖41 出現(xiàn)的界面圖調(diào)試成功時(shí)出現(xiàn)下圖的界面:圖42 調(diào)試成功時(shí)的界面圖點(diǎn)擊綠色三角“運(yùn)行”按鈕,看實(shí)驗(yàn)箱上的運(yùn)行效果。點(diǎn)擊紅色方塊“停止”按鈕,停止運(yùn)行。3. 2打開軟件新建一個(gè)c project工程,將第三次試驗(yàn)(I/O口,串口,中斷)的文件復(fù)制到該工程,并刪除創(chuàng)建的工程,刷新界面,獲取之前的實(shí)驗(yàn)?zāi)夸洝?.3相關(guān)寄存器定義 工程->include文件夾->adc文件夾->adc.h,在adc.h中添加:#define ADCCON (*(volatile unsigned int *)0x58000000)/adc控制寄存器#define ADC

13、TSC (*(volatile unsigned int *)0x58000004)/adc觸摸屏控制寄存器#define ADCDLY (*(volatile unsigned int *)0x58000008)/adc啟動(dòng)或間延時(shí)寄存器#define ADCDAT0 (*(volatile unsigned int *)0x5800000C)/adc轉(zhuǎn)化數(shù)據(jù)寄存器0#define ADCDAT1 (*(volatile unsigned int *)0x58000010)/adc轉(zhuǎn)化數(shù)據(jù)寄存器1#define CLKCON (*(volatile unsigned int *)0x4C00

14、000C)int adc_read(void);/讀取模擬型號(hào)void adc_init(void); /A/D轉(zhuǎn)化初始化3.3.1實(shí)現(xiàn)驅(qū)動(dòng)在工程中新建drivers文件夾,在drivers中新建adc文件夾,在adc中新建adc.c文件,在adc.c中添加如下代碼:#include "adc/adc.h"void adc_init(void)/時(shí)鐘配置,CLKCON15 = 0b1,表示使能 CLKCON |= 0x1 << 15;/時(shí)鐘分頻ADCCON14=0b1,ADCCON13:6=0xFF;ADCCON|=0x1<<14;ADCCON|=0

15、xFF<<6;/通道選擇,選擇通道2,ADCCON5:3=010;ADCCON&=(0x7<<3);ADCCON|=0x1<<4;/模式選擇:選擇正常模式 ADCCON2=0;ADCCON&=(0x1<<2);/設(shè)置啟動(dòng)AD轉(zhuǎn)換的方式:讀啟動(dòng)ADCCON&=(0x1<<1);/啟動(dòng)AD轉(zhuǎn)換ADCCON|=0X1;int adc_read(void) int data;/啟動(dòng)AD轉(zhuǎn)換ADCCON|=0X1;/判斷采樣轉(zhuǎn)換完成while(!(ADCCON&(1<<15);data=ADCDAT0

16、&0xFFF;/啟動(dòng)AD轉(zhuǎn)換ADCCON|=0X1;return data;3.3.2編寫main.c common文件夾-> main.c,在main.c中添加:#include "adc/adc.h"#include "uart/uart.h"#include "key/key.h"#include "gpio/led.h"int main(void) uart_init(); led_init(); key_init(); adc_init(); while(1) /讀寫采樣值 int ch,i

17、=0,j=0; ch=adc_read(); printf("%dn",ch); return 0;void do_irq(void) /中斷采樣值部分int src = INTOFFSET;int i;printf("中斷操作中:do irq n");/打印中斷switch (src) case 4:key_isr();led_off();for(i=0;i<1000000;i+);led_on();for(i=0;i<1000000;i+);break;INTPND |= 1 << src;3.3.3修改兩個(gè)Makefile

18、復(fù)制工程中common文件夾中的Makefile文件到drivers->key中, 在drivers->adc下的Makefile中找到:“COBJS:=”改為:COBJS:= adc.o /即將adc.c編譯成adc.o 找到“LIB=” 改為:LIB= libadc.a /將adc.o生成庫文件libadc.a 找到工程中的Makefile文件,在其中添加:LIBS += drivers/adc/libadc.a /將libadc.a 鏈接到工程中3.3.4保存文件并編譯3.4創(chuàng)建Keil工程打開eclipse中run->debug configurations,右擊Vision project創(chuàng)建New Browse選中adc,點(diǎn)擊Target Options,打開out

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論