《ARM嵌入式系統(tǒng)原理及應(yīng)用開發(fā)》課件第9章_第1頁
《ARM嵌入式系統(tǒng)原理及應(yīng)用開發(fā)》課件第9章_第2頁
《ARM嵌入式系統(tǒng)原理及應(yīng)用開發(fā)》課件第9章_第3頁
《ARM嵌入式系統(tǒng)原理及應(yīng)用開發(fā)》課件第9章_第4頁
《ARM嵌入式系統(tǒng)原理及應(yīng)用開發(fā)》課件第9章_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9章基于ARM開發(fā)工具的基礎(chǔ)實驗9.1ARM匯編指令使用實驗——基本數(shù)學(xué)/邏輯運算9.2ARM匯編指令使用實驗——存儲區(qū)數(shù)據(jù)塊的傳送9.3匯編語言與C語言的相互調(diào)用實驗——隨機數(shù)發(fā)生器9.4C語言程序組件應(yīng)用實驗——PWM直流電機控制9.1ARM匯編指令使用實驗—基本數(shù)學(xué)/邏輯運算

一、實驗?zāi)康?/p>

1.初步學(xué)會使用ARMADS/EmbestIDEforARM開發(fā)環(huán)境及ARM軟件模擬器。

2.通過實驗掌握數(shù)據(jù)傳送和基本數(shù)學(xué)/邏輯運算的ARM匯編指令的使用方法。

二、實驗設(shè)備

1.硬件:PC機。

2.軟件:ADS1.2/EmbestIDE200X集成開發(fā)環(huán)境。三、實驗內(nèi)容

1.熟悉ADS1.2/EmbestIDE200X開發(fā)環(huán)境的使用,使用LDR/STR和MOV等指令訪問寄存器或存儲單元,實現(xiàn)數(shù)據(jù)的加法運算。具體實驗參考程序如下:

/*armasm1a.s*/

.EQU X,45 /*定義變量X,并賦值為45*/

.EQU Y,64 /*定義變量Y,并賦值為64*/

.EQU STACK_TOP,0X1000 /*定義棧頂0X1000*/

.GLOBAL_START

.TEXT

_START: /*程序代碼開始標志*/

MOV SP,#STACK_TOP

MOV R0,#X /*X的值放入R0*/

STR R0,[SP] /*R0的值保存到堆棧*/

MOV R0,#Y /*Y的值放入R0*/

LDR R1,[SP] /*取堆棧中的數(shù)到R1*/

ADD R0,R0,R1

STR R0,[SP]

STOP: B STOP/*程序結(jié)束,進入死循環(huán)*/

.END

2.使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本數(shù)學(xué)/邏輯運算。具體實驗參考程序如下:

/*armasm1b.s*/

.EQU X,45 /*定義變量X,并賦值為45*/

.EQU Y,64 /*定義變量Y,并賦值為64*/

.EQU Z,87 /*定義變量Z,并賦值為87*/

.EQU STACK_TOP,0X1000 /*定義棧頂0X1000*/

.GLOBAL_START

.TEXT

_START: /*程序代碼開始標志*/

MOV R0,#X /*X的值放入R0*/

MOV R0,R0,LSL#8 /*R0的值乘以2的8次方*/

MOV R1,#Y /*Y的值放入R1*/

ADD R2, R0,R1,LSR#1/*R1的值除以2再加上R0后的值放入R2*/

MOV SP,#0X1000

STR R2,[SP]

MOV R0,#Z /*Z的值放入R0*/

AND R0,R0,#0XFF /*取R0的低八位*/

MOV R1,#Y /*Y的值放入R1*/

ADD R2,R0,R1,LSR#1 /*R1的值除以2再加上R0后的值放入R2*/

LDR R0,[SP] /*Y的值放入R1*/

MOV R1,#0X01

ORR R0,R0,R1

MOV R1,R2 /*Y的值放入R1*/

ADD R2,R0,R1,LSR#1 /*R1的值除以2加上R0的值放入R2*/

STOP: B STOP /*程序結(jié)束,進入死循環(huán)*/

.END四、實驗操作步驟

1.新建工程。先建立一個實驗文件夾,如E\ARMSY\armasm1;然后運行EmbestIDE集成開發(fā)環(huán)境,選擇File→NewWorkspace菜單項,彈出一個對話框,輸入工程名armasm1a/armasmlb等相關(guān)內(nèi)容;最后單擊OK按鈕,將創(chuàng)建一個新工程,并同時創(chuàng)建一個與工程名相同的工作區(qū)。此時在工作區(qū)窗口將能打開該工作區(qū)和工程。

2.建立源文件。選擇File→New菜單項,彈出一個新的、沒有標題的文本編輯窗口,輸入光標位于窗口中第一行,按照實驗參考程序編輯輸入源文件代碼。編輯完后,保存文件armasmla.s。

3.添加源文件。選擇Project→AddToProject→File項或單擊工程管理窗口中的相應(yīng)右鍵快捷菜單命令,打開文件選擇對話框,在工程目錄下選擇剛才建立的源文件armasmla.s/armasmlb.s。

4.基本設(shè)置。選擇Project→Settings…菜單項或按下快捷鍵Alt?+?F7,彈出工程設(shè)置對話框;在工程設(shè)置對話框中選擇Processor屬性頁,按照使用要求對目標板所用處理器進行設(shè)置。

5.生成目標代碼。選擇Build→Buildarmasmla菜單項或按下快捷鍵F7,生成目標代碼。此步驟也可以通過單擊工具欄上相應(yīng)按鈕來完成。

6.調(diào)試設(shè)置。選擇選擇Project→Settings…菜單項或按下快捷鍵Alt?+?F7,彈出工程設(shè)置對話框;在工程設(shè)置對話框中,若選擇Remote頁面則對調(diào)試設(shè)備模塊進行設(shè)置;若選擇Debug頁面則對調(diào)試模塊進行設(shè)置。

7.選擇Debug→RemoteConnect連接軟件仿真器,執(zhí)行Download命令下載程序,并打開寄存器窗口。

8.打開存儲器窗口,觀察地址0x8000~0x801F的內(nèi)容以及地址0xFF0~0xFFF的內(nèi)容。

9.單步執(zhí)行程序,并觀察和記錄寄存器與存儲器值的變化。

10.結(jié)合實驗內(nèi)容和相關(guān)資料觀察程序運行,通過實驗加深理解ARM指令的使用。五、實驗報告

1.畫出程序armasmla.s和armasmlb.s的實現(xiàn)框圖,并說明其各自實現(xiàn)的功能。

2.記錄程序armasmla.s/armasmlb.s單步運行時有關(guān)寄存器與存儲器的值,并分析結(jié)果是否正確。9.2ARM匯編指令使用實驗——存儲區(qū)數(shù)據(jù)塊的傳送

一、實驗?zāi)康?/p>

1.熟悉ARMADS1.2/EmbestIDEforARM開發(fā)環(huán)境及ARM軟件模擬器的使用。

2.通過實驗掌握使用LDM/STM、B、BL等指令完成較為復(fù)雜的存儲區(qū)訪問和分支程序的方法,學(xué)習(xí)使用條件碼,加強對CPSR的認識。

二、實驗設(shè)備

1.硬件:PC機。

2.軟件:ADS1.2/EmbestIDE200X集成開發(fā)環(huán)境。三、實驗內(nèi)容

設(shè)計并調(diào)試一個存儲區(qū)數(shù)據(jù)塊的傳送程序,具體數(shù)據(jù)塊的傳送要求為:將數(shù)據(jù)從源數(shù)據(jù)區(qū)snum復(fù)制到目標數(shù)據(jù)區(qū)dnum,數(shù)據(jù)的個數(shù)num假定為20,復(fù)制時以8個字為單位進行,對于最后不足8個字的數(shù)據(jù),以字為單位進行復(fù)制。用ARM匯編語言設(shè)計該數(shù)據(jù)塊復(fù)制程序的設(shè)計思想如下:先將源數(shù)據(jù)區(qū)的起始地址、目標數(shù)據(jù)區(qū)的起始地址以及數(shù)據(jù)個數(shù)賦給選定的寄存器R0、R1、R2,再根據(jù)每次批量/單個復(fù)制數(shù)據(jù)的個數(shù)R3確定用于數(shù)據(jù)復(fù)制的中間寄存器R4~R11,之后先將源數(shù)據(jù)區(qū)的若干個數(shù)據(jù)批量裝載到中間寄存器中,再將中間寄存器的數(shù)據(jù)批量存儲到目的數(shù)據(jù)存儲區(qū),隨后進行數(shù)據(jù)是否復(fù)制完畢的判斷,若未復(fù)制完畢,則修改有關(guān)操作數(shù)據(jù)地址,并重復(fù)前面的數(shù)據(jù)復(fù)制操作,否則,終止操作,程序結(jié)束。參考程序如下:

.GLOBAL_START

.TEXT

.EQUNUM,20/*定義需要復(fù)制的字數(shù)據(jù)個數(shù)NUM為20*/

_START:

LDRR0,=SRC /*將R0指向源數(shù)據(jù)區(qū)的起始地址*/

LDRR1,=DST /*將R1指向源數(shù)據(jù)區(qū)的起始地址*/

MOVR2,#NUM /*將需要復(fù)制的字數(shù)據(jù)個數(shù)存放在R2中*/

MOVSP,#0X400 /*將堆棧指針SP指向#0X400*/

BLKCOPY:

MOVSR3,R2,LSR#3/*R2的值除以8的結(jié)果存入R3*/

BEQCOPYWORDS/*若Z=1,則轉(zhuǎn)COPYWORDS*/

STMFDSP!,{R4-R11}/*將R4~R11的內(nèi)容存入堆棧進行保護*/

OCTCOPY:

LDMIAR0!,{R4-R11} /*從源數(shù)據(jù)區(qū)裝載8個字數(shù)據(jù)到R4~R11*/

STMIAR1!,{R4-R11} /*將R4~R11中的8個字數(shù)據(jù)存入目的數(shù)據(jù)區(qū)*/

SUBSR3,R3,#1 /*每復(fù)制一次R3減1*/

BNEOCTCOPY /*若R3不等于0,則轉(zhuǎn)移到OCTCOPY*/

LDMFDSP!,{R4-R11}/*將堆棧內(nèi)容恢復(fù)到R4~R11*/

COPYWORDS:

ANDSR2,R2,#7 /*計算需復(fù)制的奇數(shù)個字的個數(shù)*/

BEQSTOP /*若R2=0則停止*/

WORDCOPY:

LDRR3,[R0],#4 /*將源數(shù)據(jù)區(qū)的一個字裝載至R3*/

STRR3,[R1],#4 /*將R3中的數(shù)據(jù)存到目的數(shù)據(jù)區(qū)*/

SUBSR2,R2,#1 /*數(shù)據(jù)傳輸控制計數(shù)器減1*/

BNEWORDCOPY /*若R2不等于0,則轉(zhuǎn)移到WORDCOPY*/

STOP:

B STOP

.LTORG

SRC: /*源數(shù)據(jù)區(qū)起始地址標號*/

.LONG1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4

DST: /*目的數(shù)據(jù)區(qū)起始地址標號*/

.LONG0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

.END四、實驗操作步驟

1.新建工程。先建立一個實驗文件夾,如E\ARMSY\armasm2;然后運行EmbestIDE集成開發(fā)環(huán)境,選擇File→NewWorkspace菜單項,彈出一個對話框,輸入工程名ARMcode等相關(guān)內(nèi)容;最后單擊OK按鈕,將創(chuàng)建一個新工程,同時創(chuàng)建一個與工程名相同的工作區(qū)。此時在工作區(qū)窗口將打開該工作區(qū)和工程。

2.建立源文件。選擇File→New菜單項,彈出一個新的、沒有標題的文本編輯窗口,輸入光標位于窗口中第一行,按照實驗參考程序編輯輸入源文件代碼。編輯完后,保存文件armasm2.s。

3.添加源文件。選擇Project→AddToProject→File項,或單擊工程管理窗口中的相應(yīng)右鍵快捷菜單命令,打開文件選擇對話框,在工程目錄下選擇剛才建立的源文件armasm2.s。

4.基本設(shè)置。選擇Project→Settings…菜單項或按下快捷鍵Alt+F7,彈出工程設(shè)置對話框;然后在工程設(shè)置對話框中,選擇Processor屬性頁,對目標板所用處理器進行設(shè)置。

5.生成目標代碼。選擇Build→Buildarmasm2菜單項或按下快捷鍵F7,生成目標代碼。也可以單擊工具欄上的相應(yīng)按鈕來完成。

6.調(diào)試設(shè)置。選擇Project→Settings…菜單項或按下快捷鍵Alt+F7,彈出工程設(shè)置對話框;在工程設(shè)置對話框中,若選擇Remote頁面則對調(diào)試設(shè)備模塊進行設(shè)置;若選擇Debug頁面,則對調(diào)試模塊進行設(shè)置。

7.選擇Debug→RemoteConnect連接軟件仿真器,執(zhí)行Download命令下載程序,并打開寄存器窗口。

8.打開存儲器窗口,觀察地址0x8054~0x80A0的內(nèi)容以及地址0x80A4~0X80F0的內(nèi)容。

9.單步執(zhí)行程序并觀察和記錄寄存器與存儲器值的變化,注意觀察步驟8的地址中的內(nèi)容變化。當執(zhí)行STMFD、LDMFD、LDMIA和STMIA指令時,注意觀察其后面的參數(shù)所指的地址段或寄存器段的內(nèi)容變化。

10.結(jié)合實驗內(nèi)容和相關(guān)資料觀察程序運行,通過實驗加深理解ARM指令的使用。五、實驗報告

1.編寫實現(xiàn)該功能的程序,并畫出數(shù)據(jù)塊傳送的示意圖和該程序的實現(xiàn)框圖。

2.記錄程序單步運行時有關(guān)寄存器與存儲器的值,并分析結(jié)果是否正確。9.3匯編語言與C語言的相互調(diào)用實驗

——隨機數(shù)發(fā)生器

一、實驗?zāi)康?/p>

1.閱讀實驗程序,觀察處理器啟動過程,學(xué)會使用ADS1.2/EmbestIDE輔助信息窗口來分析判斷調(diào)試過程和結(jié)果。

2.學(xué)會在ADS1.2/EmbestIDE中編寫、編譯與調(diào)試匯編語言和C語言相互調(diào)用的程序。二、實驗設(shè)備

1.硬件:PC機。

2.軟件:ADS1.2/EmbestIDE200X集成開發(fā)環(huán)境。

三、實驗內(nèi)容

使用匯編語言設(shè)計一個產(chǎn)生隨機數(shù)的函數(shù),然后通過C語言來調(diào)用該函數(shù)產(chǎn)生一系列隨機數(shù),并存放到數(shù)組中。參考程序如下。

1.randtest.c參考源代碼

/*隨機數(shù)產(chǎn)生測試例子,程序通過調(diào)用random..s中的函數(shù)randomnumber來生成隨機數(shù)*/

//#include<stdio.h>

externunsignedintrandomnumber(void);

intmain()

{

inti;

intnTemp;

unsignedintrandom[10];

for(i=0;i<10;i++)

{

nTemp=randomnumber();

random[i]=nTemp;

}

return(0);

}

2.init.s參考源代碼

/*系統(tǒng)初始化程序,用于硬件初始化設(shè)置,并轉(zhuǎn)入外部的隨機數(shù)產(chǎn)生主函數(shù)main()*/

#程序入口,ARM匯編

#.ARM

.GLOBAL_START

.TEXT

_START: BRESET_HANDLER

UNDEFINED_HANDLER: BUNDEFINED_HANDLER

SWI_HANDLER: BSWI_HANDLER

PREFETCH_HANDLER: BPREFETCH_HANDLER

ABORT_HANDLER: BABORT_HANDLER

NOP /*RESERVEDVECTOR*/

IRQ_HANDLER: BIRQ_HANDLER

FIQ_HANDLER: BFIQ_HANDLER

RESET_HANDLER: LDR SP,=0X00002000

.EXTERNMAIN

LDRR0,=MAIN

MOVLR,PC

BXR0

#-LOOPFOREVER

END:

BEND

.GLOBAL__GCCMAIN

__GCCMAIN:

MOV PC,LR

.END

3.random.s參考源代碼

#這是一個使用33位反饋移位寄存器產(chǎn)生偽隨機數(shù)的函數(shù)產(chǎn)生器RANDOMNUMBER

#AREA|Random$$code|,CODE,READONLY

.GLOBALRANDOMNUMBER

RANDOMNUMBER:

#ONEXIT:

#A1=32偽隨機數(shù)的低位數(shù)據(jù)

#A2=32偽隨機數(shù)的高位數(shù)據(jù)

LDR IP,SEEDPOINTER

LDMIA IP,{A1,A2}

TST A2,A2,LSR#1

MOVS A3,A1,RRX

ADC A2,A2,A2

EOR A3,A3,A1,LSL#12

EOR A1,A3,A3,LSR#20

STMIA IP,{A1,A2}

MOV PC,LR

SEEDPOINTER:

.LONG SEED

.DATA

.GLOBAL SEED

SEED:

.LONG0X55555555

.LONG0X55555555

#END

4.鏈接腳本文件ldscript參考源代碼

SECTIONS

{

.=0x0;

.text:{*(.text)}

.data:{*(.data)}

.rodata:{*(.rodata)}

.bss:{*(.bss)}

}鏈接腳本程序主要是描述編寫的文件中的各個部分如何擺放在輸出文件中,并控制這些文件如何定位這些輸出文件。鏈接腳本文件必須以關(guān)鍵詞SECTIONS開始,緊接著式大括號,后面是所有需要輸出地描述部分,最后是閉括號收尾,并且全部使用半角符號。

本ldscript文件中各語句的含義是:“.=0x0”為將當前地址計數(shù)器指向0x0,“.text:{*(.text)}”為程序代碼必須放在當前的地址計數(shù)器指向的0x0處,“.data:{*(.data)}”為已經(jīng)初始化的數(shù)據(jù)必須放在當前的地址計數(shù)器指向的地方(緊接text區(qū)域后),“.rodata:{*(.rodata)}”為只讀數(shù)據(jù)必須放在當前的地址計數(shù)器指向的地方(緊接data區(qū)域后),“.bss:{*(.bss)}”為未初始化的數(shù)據(jù)必須放在當前的地址計數(shù)器指向的地方(緊接rodata區(qū)域后)。四、實驗步驟

1.創(chuàng)建新的工程,工程名為armcasm。

2.按照參考程序編寫源代碼文件,并分別保存為randtest.c、init.s、random.s和ldscript,然后把它們加入工程中。

3.按照編譯→匯編器設(shè)置→鏈接器設(shè)置→調(diào)試器設(shè)置的順序來設(shè)置新工程,并編譯、鏈接工程。

4.下載調(diào)試文件,并打開Memrory/Register/Watch/Variable/CallStack窗口,單步執(zhí)行程序。通過以上窗口,跟蹤程序運行,觀察分析并記錄運行結(jié)果,通過實驗學(xué)會使用ADS1.2/EmbestIDE來進行應(yīng)用程序的開發(fā)與調(diào)試。五、實驗報告

記錄程序單步運行時有關(guān)寄存器、存儲器和變量的值,并分析結(jié)果是否正確。9.4C語言程序組件應(yīng)用實驗——PWM直流電機控制

一、實驗?zāi)康?/p>

1.初步學(xué)會使用ADS/EmbestIDEforARM開發(fā)環(huán)境及ARM軟件模擬器。

2.通過實驗掌握使用LDM/STM、B、BL等指令完成較為復(fù)雜的存儲區(qū)訪問和分支程序的方法,學(xué)習(xí)使用條件碼,加強對CPSR的認識。二、實驗設(shè)備

1.硬件:PC機。

2.軟件:ADS1.2/EmbestIDE2004集成開發(fā)環(huán)境。三、實驗內(nèi)容

利用S3C44B0X/S3C2410X/S3C2440X芯片的定時器0、1組成的雙極性PWM發(fā)生器,設(shè)計一個實現(xiàn)嵌入式開發(fā)板/實驗開發(fā)系統(tǒng)中的直流電動機驅(qū)動。

1.直流電動機的PWM電路原理。晶體管的導(dǎo)通時間也被稱為導(dǎo)通角α,若改變調(diào)制晶體管的開關(guān)時間,即改變導(dǎo)通角α的大小,則可通過改變加在負載上的平均電壓的大小來實現(xiàn)對電動機的變速控制,這稱為脈寬調(diào)制(PWM)變速控制,其原理如圖9.1所示。在PWM變速控制中,系統(tǒng)采用直流電壓,且放大器的頻率是固定的,變速控制通過調(diào)節(jié)脈寬來實現(xiàn)。圖9.1脈寬調(diào)制(PWM)變速原理構(gòu)成PWM的功率轉(zhuǎn)換電路可采用“H”橋式驅(qū)動或“T”式驅(qū)動。一個直流電動機的PWM控制電路的等效電路如圖9.2所示。在這個等效電路中,傳送到負載(電動機)上的功率值取決于開關(guān)頻率、導(dǎo)通角及負載電感的大小。開關(guān)頻率的大小主要與所用功率器件的種類有關(guān),對于雙極結(jié)型晶體管(GTR),頻率一般為1~5kHz;對于絕緣柵雙極晶體管(IGBT),頻率一般為5~12kHz;對于場效應(yīng)晶體管(MOSFET),頻率則可高達20kHz。另外,開關(guān)頻率還和電動機電感的大小有關(guān),電感小的電動機的頻率應(yīng)該取得高些。圖9.2PWM控制電路的等效電路由圖9.2可知,當接通電源時,電動機兩端加上電壓Up,電動機儲能,電流增加;當電源中斷時,電樞電感所存儲的能量通過續(xù)流二極管VD繼續(xù)流動,而儲存的能量呈下降的趨勢。除功率值以外,電樞電流的脈動量與電動機的轉(zhuǎn)速無關(guān),僅與開關(guān)周期、正向?qū)〞r間及電動機的電磁時間常數(shù)有關(guān)。

2.PWM直流電動機驅(qū)動程序。以S3C2410X芯片為例,PWM發(fā)生器用到的寄存器主要有以下幾個:

(1)?TCFG0。參考:Deadzonelength=0;prescalervalue=2。

(2)?TCFG1。時鐘輸入頻率=PCLK/(prescalervalue+1)/(dividervalue)。rescalervalue由TCFG0決定;dividervalue由TCFG1決定。參考:無DMA模式,dividervalue?=?2。本系統(tǒng)中PCLK?=?50.7MHz。

(3)?TCON。參考:deadzoneoperationenable;Inverteroff。

(4)?TCNTB0&TCMPB0。TCNTB0決定了脈沖的頻率,TCMPB0決定了正脈沖的寬度。當TCMPB0?=?TCNTB0/2時,正、負脈沖寬度相同;當TCMPB0由0變到TCNTB0時,負脈沖寬度不斷增加。參考:脈沖頻率為1Hz。

PWM直流電動機驅(qū)動參考程序如下:

//主程序

intmain(void)

{

inti,j,ADData,lastADData,count=0;

ARMTargetInit();//開發(fā)板初始化

init_MotorPort();

init_ADdevice();

Uart_Printf(0,"\nBegincontrolDCmotor.\t\tPressanykeytostopDCmotor.\n");

for(;;)

{

for(i=0;i<2;i++)

ADData=GetADresult(0);//取采樣值

Uart_Printf(0,"addata=%d",ADData);

hudelay(10);

SetPWM((ADData-512)*MOTOR_CONT/1024);

hudelay(10);

if((rUTRSTATO&0x1))//有輸入,則跳出

{*Revdata=RdURXH0();

break;

}

}

SetPWM(0);

hudelay(10);

return0;

}主要的定義和函數(shù)如下:

#include"../inc/drivers.h"

#include"../inc/lib.h"

#include<string.h>

#include<stdio.h>

#include"inc/max504.h"

#include"inc/MotorCtrl.h"

#include"inc/EXIO.h"

#pragmaimport(_use_no_semihosting_swi)

#definePCLK(50700000)

#defineMOTOR_SEVER_FRE1000//20kHz

#defineMOTOR_CONT(PCLK/2/2/MOTOR_SEVER_FRE)

#defineMOTOR_MID(MOTOR_CONT/2)

#definerTCFG0(*(volatileunsigned*)0x51000000)

#definerTCFG1(*(volatileunsigned*)0x51000004)

#definerTCNTB0(*(volatileunsigned*)0x5100000C)

#definerTCMPB0(*(volatileunsigned*)0x51000010)

#definerTCON(*(volatileunsigned*)0x51000008)

#definerGPBCON(*(volatileunsigned*)0x56000010)

#definerGPBUP(*(volatileunsigned*)0x56000018)

#definerGPBDAT(*(volatileunsigned*)0x56000014)

#defineADCCON_FLAG(0x1<<15)

#defineADCCON_ENABLE_START_BYBEAD(0x1<<1)

#definerADCCON(*(volatileunsigned*)0x58000000)

#definerADCDAT0(*(volatileunsigned*)0x5800000C)

#definerUTRSTAT0

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論