




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、武漢理工大學(xué)華夏學(xué)院設(shè) 計(jì) 報(bào) 告課程名稱 嵌入式技術(shù) 題 目基于ARM9的數(shù)據(jù)采集程序設(shè)計(jì)專 業(yè) 班 級(jí) 學(xué) 號(hào) 姓 名 成 績 _2015_年_ 月_日(注:為設(shè)計(jì)報(bào)告完成的日期)目錄第1章 功能及原理.1 1.1實(shí)現(xiàn)的功能.1 1.2軟件硬件平臺(tái).11.3硬件原理分析及原理圖.11.4硬件驅(qū)動(dòng)的實(shí)現(xiàn)步驟及分析.1第2章 代碼設(shè)計(jì).42.1相關(guān)寄存器定義.42.2實(shí)現(xiàn)驅(qū)動(dòng).42.3編寫驅(qū)動(dòng).52.4修改兩個(gè)Makefile.6第3章 實(shí)驗(yàn)運(yùn)行步驟.83.1啟動(dòng)串口調(diào)試.83.2運(yùn)行H-JTAG.83.3運(yùn)行Eclipse工程.93.4調(diào)試工程.9第4章 調(diào)試及結(jié)果分析.114.1實(shí)驗(yàn)現(xiàn)象.
2、114.2總結(jié)體會(huì).12第1章 功能及原理1.1實(shí)現(xiàn)的功能通過S3C2410X(ARM9)的ADC采集實(shí)驗(yàn)箱電位器的值,旋轉(zhuǎn)電位器時(shí)可在屏幕上看到當(dāng)前采集值的變化。中斷功能:按下中斷按鍵觸發(fā)中斷,中斷時(shí)三個(gè)LED燈閃爍一次,且屏幕上打印正在中斷的提示。報(bào)警功能:設(shè)定一個(gè)臨界值(如500),當(dāng)采集的值超過此臨界值時(shí),燈閃爍報(bào)警,三個(gè)電位器可與三個(gè)燈一一對(duì)應(yīng)。1.2軟件硬件平臺(tái) 硬件平臺(tái)為博創(chuàng)經(jīng)典UP-NETARM2410實(shí)驗(yàn)箱(S3C2410處理器)。 軟件平臺(tái)為eclipse+keil+PUTTY(串口調(diào)試助手)。1.3硬件原理分析及原理圖 由底板文件夾中第10章10-AD-DA-CAN文件中
3、可得電位器原理圖如下:圖1 硬件原理圖 S3C2410的ADC是8路復(fù)用的,開發(fā)平臺(tái)上的3個(gè)ADC電位器對(duì)應(yīng)AIN0-2,觸摸屏電路使用AIN5和AIN7。ADC電路的參考電壓VERF固定為3.3V電壓,輸入電壓范圍是0到3.3V。 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ǔ)、控制和顯示。1.4硬件驅(qū)動(dòng)的實(shí)現(xiàn)步驟及分析1.4.1 muxed通過在09章IO ports章節(jié)搜索AIN0、AIN1、AIN2,沒有找到,因此,不是多功能引腳。1.4.2 clk 開啟時(shí)鐘在07-clock power managemen
4、t一章中搜索ADC,發(fā)現(xiàn):表1 clock power management設(shè)置使能設(shè)置為使能狀態(tài),CLKCON15=0b1。時(shí)鐘分頻在16-ADC & touch screen一章中的寄存器中配置,發(fā)現(xiàn):表2 ADC & touch screen寄存器配置A/D轉(zhuǎn)換器預(yù)分頻器使能 ADCCON14=0b1。A/D轉(zhuǎn)換器預(yù)分頻器數(shù)值為256分頻 ADCCON13:6=0xFF。1.4.3參數(shù)設(shè)置查看表2可知:ADC通道選擇:輸入通道選擇AIN2,ADCCON5:3=0b010。模式選擇:模式選擇為正常模式,ADCCON2=0b0。設(shè)置啟動(dòng)AD轉(zhuǎn)換的方式:讀啟動(dòng),ADCCON1=
5、0b1。啟動(dòng)AD轉(zhuǎn)換:ADCCON0=0b1。1.4.4功能判斷采樣轉(zhuǎn)換完成: if (ADCCON15 = 0b1)則轉(zhuǎn)換完成,可讀取采樣值,否則繼續(xù)等。讀取采樣值(整數(shù)):data = ADCDAT00:11。啟動(dòng)ADC:tmp = ADCDAT00:11。第2章 代碼設(shè)計(jì)2.1相關(guān)寄存器定義在工程中新建include文件夾,在include文件夾中新建tao(adc)文件夾,在tao文件夾中新建tao.h文件,在tao.h中添加如下代碼:#define TAOCON (*(volatile unsigned int *)0x58000000)/TAO控制寄存器#define TAOTSC
6、 (*(volatile unsigned int *)0x58000004)/TAO觸摸屏控制寄存器#define TAODLY (*(volatile unsigned int *)0x58000008)/TAO啟動(dòng)延時(shí)寄存器#define TAODAT0 (*(volatile unsigned int *)0x5800000C)/TAO轉(zhuǎn)換數(shù)據(jù)寄存器0#define TAODAT1 (*(volatile unsigned int *)0x58000010)/TAO轉(zhuǎn)換數(shù)據(jù)寄存器1#define CLKCON (*(volatile unsigned int *)0x4C00000C)
7、/時(shí)鐘寄存器int tao_read(void);void tao_init01(void);void tao_init02(void);void tao_init03(void);表3 相關(guān)寄存器定義2.2實(shí)現(xiàn)驅(qū)動(dòng)在工程中新建drivers文件夾,在drivers文件夾中新建tao文件夾,在tao文件夾中新建tao.c文件,在tao.c中添加如下代碼:#include "tao/tao.h"void tao_init01(void)CLKCON |= 0x1 << 15; /時(shí)鐘配置,CLKCON15 = 0b1,表示使能TAOCON|=0x1<<
8、14;TAOCON|=0xFF<<6; /時(shí)鐘分頻TAOCON14=0b1,TAOCON13:6=0xFF;TAOCON&=(0x7<<3); /通道選擇,選擇通道0,TAOCON5:3=010;TAOCON&=(0x1<<2); /模式選擇:選擇正常模式 TAOCON2=0;TAOCON&=(0x1<<1); /設(shè)置啟動(dòng)AD轉(zhuǎn)換的方式:讀啟動(dòng)TAOCON|=0X1; /啟動(dòng)AD轉(zhuǎn)換void tao_init02(void) CLKCON |= 0x1 << 15; /時(shí)鐘配置,CLKCON15 = 0b1,表
9、示使能TAOCON|=0x1<<14; TAOCON|=0xFF<<6; /時(shí)鐘分頻TAOCON14=0b1,TAOCON13:6=0xFF;TAOCON&=(0x7<<3); TAOCON|=0x3<<4; /通道選擇,選擇通道1,TAOCON5:3=010;TAOCON&=(0x1<<2); /模式選擇:選擇正常模式 TAOCON2=0;TAOCON&=(0x1<<1); /設(shè)置啟動(dòng)AD轉(zhuǎn)換的方式:讀啟動(dòng)TAOCON|=0X1; /啟動(dòng)AD轉(zhuǎn)換void tao_init03(void) CLKC
10、ON |= 0x1 << 15; /時(shí)鐘配置,CLKCON15 = 0b1,表示使能TAOCON|=0x1<<14; TAOCON|=0xFF<<6; /時(shí)鐘分頻TAOCON14=0b1TAOCON13:6=0xFF;TAOCON&=(0x7<<3);TAOCON|=0x1<<4; /通道選擇,選擇通道2,TAOCON5:3=010;TAOCON&=(0x1<<2); /模式選擇:選擇正常模式 TAOCON2=0;TAOCON&=(0x1<<1); /設(shè)置啟動(dòng)AD轉(zhuǎn)換的方式:讀啟動(dòng)TAO
11、CON|=0X1; /啟動(dòng)AD轉(zhuǎn)換int tao_read(void) int data;TAOCON|=0X1; /啟動(dòng)AD轉(zhuǎn)換while(!(TAOCON&(1<<15); /判斷采樣轉(zhuǎn)換完成data=TAODAT0&0xFFF;TAOCON|=0X1; /啟動(dòng)AD轉(zhuǎn)換return data;2.3編寫驅(qū)動(dòng)common文件夾-> main.c,在main.c中添加:#include "tao/tao.h"#include "uart/uart.h"#include "key/key.h"#incl
12、ude "gpio/led.h"int main(void) uart_init(); /屏幕打印驅(qū)動(dòng) led_init(); /led燈驅(qū)動(dòng) key_init(); /中斷驅(qū)動(dòng) int t1,t2,t3; while(1) /讀寫采樣值 tao_init01(); t1=tao_read(); if(t1>500) *(volatile unsigned int *)0x56000024) |= 0x1<<5;/燈0滅 for(i=0;i<1000000;i+); *(volatile unsigned int *)0x56000024) &
13、;= (0x1<< 5);/燈0亮 for(i=0;i<1000000;i+); tao_init02(); t2=tao_read(); if(t2>500) *(volatile unsigned int *)0x56000024) |= 0x1<<6;/燈1滅 for(i=0;i<1000000;i+); *(volatile unsigned int *)0x56000024) &= (0x1<<6);/燈1亮 for(i=0;i<1000000;i+); tao_init03(); t3=tao_read(); if
14、(t3>500) *(volatile unsigned int *)0x56000024) |= 0x1<<7;/燈2滅 for(i=0;i<1000000;i+); *(volatile unsigned int *)0x56000024) &= (0x1<<7);/燈2亮 for(i=0;i<1000000;i+); printf("t1=%4d,t2=%4d,t3=%4dn",t1,t2,t3); return 0;void do_irq(void) /中斷采樣值部分 int src = INTOFFSET; int
15、 i; printf("do_irqtaon"); /打印中斷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;24修改兩個(gè)Makefile復(fù)制工程中common文件夾中的Makefile文件到drivers->tao中, 在drivers-> tao下的Makefile中找到:“COBJS:=”改為:COBJS:= tao.o /即將tao.c編
16、譯成tao.o 找到“LIB=” 改為:LIB= libtao.a /將tao.o生成庫文件libtao.a 找到工程中的Makefile文件,在其中添加:LIBS += drivers/tao/libtao.a /將libtao.a 鏈接到工程中第3章 實(shí)驗(yàn)運(yùn)行步驟3.1啟動(dòng)串口調(diào)試 雙擊桌面程序PUTTY.EXE,出現(xiàn)PUTTY Configuration 界面,選擇Serial,將Speed改為115200,點(diǎn)擊左邊樹形列表中的“Serial”, 將右邊最后一項(xiàng)改為“None”, 點(diǎn)擊“Open”按鈕,出現(xiàn)串口調(diào)試界面,撥動(dòng)實(shí)驗(yàn)箱電源開關(guān),串口調(diào)試界面中有如下顯示,表示串口通了,配置好了
17、。按電腦鍵盤的任意鍵,光標(biāo)停在vivi處,等待eclipse程序運(yùn)行。圖2 PUTTY程序圖3.2啟動(dòng)H-JTAG先確定實(shí)驗(yàn)箱電源打開,并口線連接好,單擊“開始->所有程序->H-JTAG->H-JTAG”。圖3 H-JTAG程序圖33 運(yùn)行Eclipse工程331創(chuàng)建Eclipse工程 雙擊桌面程序eclipse,選擇工作空間(存放源代碼及工程文件的地方D:eclipse_project_cyg),點(diǎn)擊OK按鈕。進(jìn)入主界面后,單擊FileNewC Project菜單項(xiàng),eclipse將打開一個(gè)標(biāo)準(zhǔn)對(duì)話框,輸入project_s3c2410,單擊Finish即可創(chuàng)建一個(gè)新的工
18、程,建議對(duì)每個(gè)新建工程使用獨(dú)立的文件夾。332創(chuàng)建Keil工程 點(diǎn)擊Vision->Create/Update Vision Project,進(jìn)入Vision Project界面,將Compiler設(shè)置為GCC,點(diǎn)擊Next->S3C2410A->Finish,這時(shí)會(huì)打開Keil軟件,關(guān)閉Keila工程。333 添加文件到工程 拷貝project_s3c2410(uart實(shí)驗(yàn)完成版)文件夾到eclipse project_s3c2410文件夾中,替換掉新建的project_s3c2410,在Eclipse軟件下,按F5刷新工程目錄。在include文件夾中新建tao文件夾,在
19、tao文件夾中新建tao.h文件,在tao.h中添加tao.h的代碼;在drivers文件夾中新建tao文件夾,在tao文件夾中新建tao.c文件,在tao.c中添加tao.c的代碼;在common文件夾里的main.c里添加代碼;復(fù)制工程中common文件夾中的Makefile文件到drivers->tao中, 在drivers tao下的Makefile中找到:“COBJS:=”改為:COBJS:= tao.o /即將tao.c編譯成tao.o 找到“LIB=” 改為:LIB= libtao.a /將tao.o生成庫文件libtao.a 找到工程中的Makefile文件,在其中添加:
20、LIBS += drivers/tao/libtao.a /將libtao.a 鏈接到工程中34 調(diào)試工程點(diǎn)擊RUN->Debug Configurations,出現(xiàn)Debug Configurations界面,右鍵單擊Vision Project,點(diǎn)擊New,單擊Browse-> protect_s3c2410->OK;單擊File的Browse,選中protect_s3c2410.uvproj->OK,點(diǎn)擊Target Options按鈕,選擇Output ->Select Folder for Objects按鈕,點(diǎn)擊向上按鈕,然后點(diǎn)擊OK按鈕;點(diǎn)擊Debug標(biāo)簽,選擇H-J
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中式餐廳轉(zhuǎn)讓合同范本
- 產(chǎn)品配方轉(zhuǎn)讓合同范例
- 公司代經(jīng)營合同范例
- 2024年重慶市大足區(qū)婦女聯(lián)合會(huì)招聘筆試真題
- 化肥品牌轉(zhuǎn)讓合同范本
- 書宣傳推廣合同范本
- 公寓鋪?zhàn)愚D(zhuǎn)讓合同范本
- 個(gè)人首套房屋購買合同范本
- 化工購銷合同范本
- 地理-浙江省強(qiáng)基聯(lián)盟2025年2月高三年級(jí)聯(lián)考試題和答案
- 濟(jì)南2024年山東濟(jì)南廣播電視臺(tái)招聘14人筆試歷年參考題庫附帶答案詳解
- 海洋氣候預(yù)測模型創(chuàng)新研究-深度研究
- 《客戶服務(wù)基礎(chǔ)》教案及課件項(xiàng)
- 2025《醫(yī)藥企業(yè)防范商業(yè)賄賂風(fēng)險(xiǎn)合規(guī)指引》解讀課件
- 2025年度船舶焊接維修工程合同范本資料下載
- 2025年湖南工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年丹參原藥材項(xiàng)目可行性研究報(bào)告
- 物理(A版)-安徽省合肥一中(省十聯(lián)考)2024-2025學(xué)年度高二年級(jí)上學(xué)期期末測試試題和答案
- 工業(yè)攝像頭知識(shí)培訓(xùn)課件
- 人教版初中歷史與社會(huì)七年級(jí)下冊(cè) 6.3.3向西開放的重要門戶-烏魯木齊 說課稿
評(píng)論
0/150
提交評(píng)論