北郵dsp硬件實(shí)驗(yàn)報(bào)告_第1頁
北郵dsp硬件實(shí)驗(yàn)報(bào)告_第2頁
北郵dsp硬件實(shí)驗(yàn)報(bào)告_第3頁
北郵dsp硬件實(shí)驗(yàn)報(bào)告_第4頁
北郵dsp硬件實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

北京郵電大學(xué)數(shù)字信號處理硬件實(shí)驗(yàn)學(xué)院:班級:學(xué)號:姓名:班內(nèi)序號實(shí)驗(yàn)一:常用指令實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.熟悉DSP開發(fā)系統(tǒng)的連接2.了解DSP開發(fā)系統(tǒng)的組成和結(jié)構(gòu)和應(yīng)用系統(tǒng)構(gòu)成3.熟悉常用C54X系列指令的用法(程序?qū)ぶ?,寄存器,I/O口,定時器,中斷控制)。二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī),CCS2.0版軟件,DSP仿真器,實(shí)驗(yàn)箱。三、實(shí)驗(yàn)操作方法1、系統(tǒng)連接進(jìn)行DSP實(shí)驗(yàn)之前,先必須連接好仿真器、實(shí)驗(yàn)箱及計(jì)算機(jī),連接方法如下所示:在硬件安裝完成后,接通仿真器電源或啟動計(jì)算機(jī),此時,仿真盒上的“紅色小燈”應(yīng)點(diǎn)亮,否則DSP開發(fā)系統(tǒng)與計(jì)算機(jī)連接有問題。2、運(yùn)行CCS程序先實(shí)驗(yàn)箱上電,然后啟動CCS,此時仿真器上的“綠色小燈”應(yīng)點(diǎn)亮,并且CCS正常啟動,表明系統(tǒng)連接正常;否則仿真器的連接、JTAG接口或CCS相關(guān)設(shè)置存在問題,掉電,檢查仿真器的連接、JTAG接口連接,或檢查CCS相關(guān)設(shè)置是否正確。四、實(shí)驗(yàn)步驟與內(nèi)容(一)簡單指令程序運(yùn)行實(shí)驗(yàn)1、實(shí)驗(yàn)使用資源實(shí)驗(yàn)通過實(shí)驗(yàn)箱上的XF指示燈觀察程序運(yùn)行結(jié)果2、實(shí)驗(yàn)過程啟動CCS2.0,并加載“exp01.out”;加載完畢后,單擊“Run”運(yùn)行程序;實(shí)驗(yàn)結(jié)果:可見XF燈以一定頻率閃爍;單擊“Halt”暫停程序運(yùn)行,則XF燈停止閃爍,如再單擊“Run”,則“XF”燈又開始閃爍;關(guān)閉所有窗口,本實(shí)驗(yàn)完畢。源程序查看:用下拉菜單中Project/Open,打開“Exp01.pjt”雙擊“Source”,雙擊“exp01.asm”可查看源程序。源程序注釋如下: .mmregs .global_main_main: stm #3000h,sp ssbx xf;將XF置1 call delay;調(diào)用延時子程序,延時 rsbx xf;將XF置0 call delay;調(diào)用延時子程序, b _main;程序跳轉(zhuǎn)到"_MAIN" nop nop;延時子程序 delay: stm 270fh,ar3;設(shè)置輔助寄存器ar3loop1: ;循環(huán)開始 stm 0f9h,ar4 ;設(shè)置輔助寄存器ar4loop2: banz loop2,*ar4-;跳轉(zhuǎn)指令ar4做自減,在減到零之前一直做loop2 banz loop1,*ar3- ;跳轉(zhuǎn)指令,ar3做自減,在ar3減到零之前,一直做loop1 ret ;返回指令 nop nop .end實(shí)驗(yàn)截圖(二)資料存儲實(shí)驗(yàn)1、實(shí)驗(yàn)使用資源本實(shí)驗(yàn)指導(dǎo)書是以TMS32OVC5410為例,介紹相關(guān)的內(nèi)部和外部內(nèi)存資源。對于其它類型的CPU請參考查閱相關(guān)的資料手冊。下面給出TMS32OVC5410的內(nèi)存分配表:對于存儲空間而言,映像表相對固定。值得注意的是內(nèi)部寄存器與存儲空間的映像關(guān)系。因此在編程應(yīng)用時這些特定的空間不能作其它用途。對于程序存儲空間而言,其映像表和CPU的工作模式有關(guān)。當(dāng)MP/MC引腳為高電平時,CPU工作在微處理器模式;當(dāng)MP/MC引腳低電平時,CPU工作在為計(jì)算機(jī)模式。具體的內(nèi)存映像關(guān)系如上如所示。內(nèi)存實(shí)驗(yàn)主要了解內(nèi)存的操作和DSP的內(nèi)部雙總線結(jié)構(gòu)。并熟悉相關(guān)的指令代碼和執(zhí)行過程等。2、實(shí)驗(yàn)過程連接好DSP開發(fā)系統(tǒng),運(yùn)行CCS軟件;a)在CCS的Memory窗口中查找C5410各個區(qū)段的數(shù)據(jù)存儲器地址,在可以改變的存儲器內(nèi)容的地方,選定地址隨意改變其中內(nèi)容并觀察結(jié)果;b)在CCS中裝載實(shí)驗(yàn)示范程序,單步執(zhí)行程序,程序中寫入和讀出的數(shù)據(jù)存儲地址的變化;c)改變其它尋址方式,進(jìn)行觀察數(shù)據(jù)存儲器地址與寫入和讀出數(shù)據(jù)的的變化。本實(shí)驗(yàn)說明:本實(shí)驗(yàn)程序?qū)?x1000開始的8個地址空間,填寫入0xAAAA的數(shù)值,然后讀出,并存儲到0X1008開始的8個地址空間。在CCS中可以觀察DATA內(nèi)存空間地址0X1000~0X100F值的變化。樣例程序?qū)嶒?yàn)操作說明:啟動CCS2.0,并加載“exp02.out”,用“View”下拉菜單中的“Memory”查看內(nèi)存單元,輸入要查看的內(nèi)存單元地址,本實(shí)驗(yàn)要查看0x1000H~0x100FH單元的數(shù)值變化,輸入地址0x1000H,查看0x1000H~0x100FH單元的初始值,單擊“Run”運(yùn)行程序,也可以“單步”運(yùn)行程序,單擊“Halt”暫停程序運(yùn)行,查看0x1000H~0x100FH單元內(nèi)數(shù)值的變化關(guān)閉各窗口,本實(shí)驗(yàn)完畢。源程序注釋:;getsomeknowledgeofthecmdfile;theprogramiscompiledatnoautoinitializationmode .mmregs .global_main_main:;storedata stm 1000h,ar1;addressofinternalmemory rpt #07h st 0aaaah,*ar1+;將數(shù)據(jù)"0AAAAH"存放到以地址1000H~1007H的八個存儲單元中.;readdatathenre-store stm 7h,ar3 stm 1000h,ar1 stm 1008h,ar2loop:;循環(huán)的將1000H~1007H的八個單元中的數(shù)據(jù)COPY到1008H~100F的;八個存儲單元中. ld *ar1+,t;將輔助寄存器ar1的值賦給t,且ar1地址加1

st t,*ar2+;存儲T寄存器的值.將t的值存儲在ar2所對應(yīng)內(nèi)存中,且ar2地址加1 banz loop,*ar3-here:;寄存器ar3地址減1,當(dāng)其值不為0時跳轉(zhuǎn)到loop無條件轉(zhuǎn)移至herebhere .end實(shí)驗(yàn)截圖(三)I/O實(shí)驗(yàn)1、實(shí)驗(yàn)使用資源數(shù)字量輸入信號全部拓展出來,數(shù)字量輸入接口主要由兩個,D_Exp與扳東開關(guān)連接,PX4和PX5與電平轉(zhuǎn)換芯片(74LVC245)連接,其功能分別為:D_Exp—數(shù)字量輸入擴(kuò)展接口123456789I0I1I2I3I4I5I6I7VCC電平轉(zhuǎn)換擴(kuò)展接口1234PX4—5VIN0IN1IN2IN3PX5—3.3VOUT3OUT2OUT1OUT0通過PORTR,PORTW指令可以實(shí)現(xiàn)I/O口的輸入輸出功能,如數(shù)字量采集實(shí)驗(yàn)。實(shí)驗(yàn)說明:實(shí)驗(yàn)中采用簡單的一一映像關(guān)系來對I/O口進(jìn)行驗(yàn)證,目的是使實(shí)驗(yàn)者能夠?qū)/O有一目了然的認(rèn)識。在本實(shí)驗(yàn)系統(tǒng)中,提供的IO空間分配如下:CPU1:0x0000 switchinput(X)80x0001 LEDoutput(X)8CPU2: 0x0001 DAC0x0004 Read_Key0x0006 Write_Key0x000F Write_LCD0x8000 HPIC00x8001 HPIC10x8002 HPID0(AUTO)0x8003 HPID1(AUTO)0x8004 HPIA00x8005 HPIA10x8006 HPID0(NOAUTO)0x8007 HPID1(NOAUTO)實(shí)驗(yàn)程序框圖注意:電平轉(zhuǎn)換接口主要考慮應(yīng)用3.3V的中央處理器時,系統(tǒng)的電平兼容問題,用來保護(hù)CPU不受損壞。系統(tǒng)采用74LVC245電平兼容轉(zhuǎn)換器件。2、實(shí)驗(yàn)過程運(yùn)行CCS程序,裝載示范程序,調(diào)整K0~K7的開關(guān),觀察LP1~LP7LED亮滅的變化,以及輸入和輸出狀態(tài)是否一致。(注意:輸出為0時點(diǎn)亮燈)例程序?qū)嶒?yàn)操作說明啟動CCS2.0,并加載“exp03.out”,單擊“Run”運(yùn)行程序,任意調(diào)整K0~K7開關(guān),可以觀察到對應(yīng)LP0~LP7燈“亮”或“滅”;單擊“Halt”,暫停持續(xù)運(yùn)行,開關(guān)將對燈失去控制。關(guān)閉所有窗口,本實(shí)驗(yàn)完畢。源程序查看:用下拉菜單中Project/Open,打開“Exp03.pjt”,雙擊“Source”,雙擊“exp03.asm”可查看源程序。代碼如下:.mmregs .global _main .text_main: stm 3100h,sp stm 1000h,ar1 portr 8000h,*ar1;讀入I/O8000H數(shù)據(jù),將其存儲到數(shù)據(jù)空間的1000H nop ;NOP為空操作,起延時作用. nop portw *ar1,8001h;將數(shù)據(jù)空間的1000H單元的數(shù)據(jù),寫出到I/O8000H nop nopb _main;程序跳轉(zhuǎn)到"_MAIN"執(zhí)行.nopnop.end實(shí)驗(yàn)截圖(四)定時器實(shí)驗(yàn)1、實(shí)驗(yàn)使用資源定時器實(shí)驗(yàn)時要用到C54芯片的定時器控制寄存器,定時器時間常數(shù)寄存器,定時器中斷響應(yīng),寄存器定義詳見C54芯片資料。C54的定時器是一個20位的減法計(jì)數(shù)器,可以被特定的狀態(tài)位實(shí)現(xiàn)停止、重新啟動、重設(shè)置或禁止,可以使用該定時器產(chǎn)生周期性的CPU中斷,控制定時器中斷頻率的兩個寄存器是定時周期寄存器PRD和定時減法寄存器TDDR定時器實(shí)驗(yàn)通過LED(LP1~LP7)來顯示。在本系統(tǒng)中,時鐘頻率為20MHZ,令PRD=0x4e1f,這樣得到每1/1000秒中斷一次,通過累計(jì)1000次,就能定時1秒鐘。2、實(shí)驗(yàn)過程調(diào)入樣例程序,裝載并運(yùn)行;例程序?qū)嶒?yàn)操作說明啟動CCS2.0,并加載“exp04.out”,單擊“Run”運(yùn)行,可觀察到LED燈(LP0~LP7)以一定的間隔時間不停擺動,單擊“Halt”,暫停程序運(yùn)行,LED燈停止閃爍,單擊“Run”,運(yùn)行程序,LED燈又開始閃爍。關(guān)閉所有窗口,本實(shí)驗(yàn)完畢。exp04.c 函數(shù)、子程序聲明與定義voidsys_ini()//系統(tǒng)初始化子程序asm("ssbxINTM");//全局禁止所有可屏蔽中斷PMST&=0x00FF;//(DRAM映射到程序空間和數(shù)據(jù)空間)向量表映射到0x0080空間SWWSR=0x7000;//io空間7個等待周期,程序與數(shù)據(jù)空間0個等待周期CLKMD=0x17FA;//CLKOUT=2*CLKIN=2*10M=20M,自動延時最長時間voidtimer0_ini()//定時器0初始化子程序TCR|=0x0010;//停止定時器0PRD=0x2710;//PRD=10000(D)TCR|=0x000A;//TDDR=10(D),所以定時器時鐘=1/(20M/10/10000)=5msIMR=0x0008;//使能定時器0中斷IFR=0xFFFF;//清除所有中斷標(biāo)志位asm("rsbxINTM");//全局使能可屏蔽中斷TCR&=0xFFEF;//開始定時器0TCR|=0x0020;//復(fù)位定時起0中斷服務(wù)子程序聲明與定義interruptvoidtimer0()//定時器0中斷子程序if(num==200)//記200次定時器中斷,時間=200*5ms=1sshow=~show;//取反num=0;elsenum++;return;主程序voidmain(void)sys_ini();timer0_ini();for(;;)port8001=show;vectors.asm.global_c_int00,_timer0.sect".vecs";自定義向量表

reset:;復(fù)位中斷時跳轉(zhuǎn)到c程序主函數(shù)(branch

to

C

entry

point延遲分支到c程序,默認(rèn)入口地址c_int00)

開辟堆??臻g

b_c_int00;nopnopnmi:rete;NMI

非屏蔽外部中斷輸入引腳,不可屏蔽中斷時,返回并允許產(chǎn)生該中斷nopnopnopsin17:.space4*16;保留中斷向量的地址空間sin18:.space4*16sin19:.space4*16sin20:.space4*16sin21:.space4*16sin22:.space4*16sin23:.space4*16sin24:.space4*16sin25:.space4*16sin26:.space4*16sin27:.space4*16sin28:.space4*16sin29:.space4*16sin30:.space4*16int0:retenopnopnopint1:rete;中斷寄存器設(shè)置為rete返回,允許中斷外部產(chǎn)生中斷,并且直接返回

nopnopnopint2:retenopnopnoptint0:b_timer0;檢測到定時器產(chǎn)生中斷時,返回到c程序中的timer()nopnopbrint0:retenopnopnopbxint0:retenopnopnopdmac0:retenopnopnoptint1_dmac1:retenopnopnopint3:retenopnopnophpint:retenopnopnopbrint1_dmac2:retenopnopnopbxint1_dmac3:retenopnopnopdmac4:retenopnopnopdmac5:retenopnopnop實(shí)驗(yàn)截圖(五)INT2中斷實(shí)驗(yàn)1、實(shí)驗(yàn)使用資源本實(shí)驗(yàn)是進(jìn)行C54芯片的INT2中斷練習(xí),C54芯片中斷INT2是低電平單脈沖觸發(fā);實(shí)驗(yàn)采用導(dǎo)線一端連接D_Exp—數(shù)字量輸入擴(kuò)展接口I0,經(jīng)PX4的IN3,到PX5的OUT0電平轉(zhuǎn)換,再與另一端連接INT2插孔;撥動開關(guān)K0一次,就產(chǎn)生一個低電平單脈沖;運(yùn)行示范程序,觀察LP1~LP7LED燈的輸出變化;可觀察到每撥動開關(guān)K0一次LP1~LP7燈亮滅變化一次;2、實(shí)驗(yàn)過程樣例程序?qū)嶒?yàn)操作說明啟動CCS2.0,并加載“exp05.out”,單擊“Run”運(yùn)行程序,反復(fù)撥動開關(guān)K0,觀察LP1~LP7LED燈亮滅變化,單擊“Halt”暫停程序運(yùn)行,反復(fù)撥動開關(guān)K0,LP1~LP7LED燈亮滅不變化;關(guān)閉所有窗口,本實(shí)驗(yàn)完畢。源程序查看:用下拉菜單中Project/Open,打開“Exp05.pjt”,雙擊“Source”,雙擊“int2.c”、“initial.asm”、“port.asm”以及“vectors.asm”可查看各源程序。int2.cinterruptvoidint2c();externvoidinitial();externvoid porta();externvoidportb();intflag=0,i=0;main() initial();//初始化 while(1)//死循環(huán) ;//空語句interruptvoidint2c()//中斷子程序i=i+1;if(i==1);當(dāng)i為1時,讓燈點(diǎn)亮,否則讓i為零

if(flag==0) flag=1;;當(dāng)flag為1時,執(zhí)行portb(),讓ar1的值為aaaah,即第二四六八個燈亮orta();i=0; else flag=0;當(dāng)flag為0時,執(zhí)行porta(),讓ar1的值為5555h,即第一三五七個燈亮

portb(); i=0; else i=0; return;initial.asm .mmregs .global_initial.text_initial: NOP LD#0,DP ;將0裝入數(shù)據(jù)頁指針(DP)中

STM#0,CLKMD STM#0,CLKMD;設(shè)置pll為div分頻模式

TstStatu1:LDMCLKMD,AAND#01b,A;將A中數(shù)據(jù)和01b求與之后存入A中BCTstStatu1,ANEQ ;

ANEQ,A不等于0時程序跳轉(zhuǎn)到TstStatu1

STM#0xF7FF,CLKMD;設(shè)置C5402DSP時鐘到10MHz STM0x3FA0,PMST;vectorsat3F80hARAM映射到數(shù)據(jù)和程序存儲空間

ssbx1,11;設(shè)置ST1.INTM=1,停止所有的中斷

stm#00h,imr ;停止所有的中斷 stm#0ffffh,ifr ;清除所有中斷的標(biāo)志位 stm#04h,imr ;開啟int2的外部中斷 rsbx1,11 ;開啟所有中斷 ret .endport.asm .mmregs .global _porta .global _portb _porta:;

stm 304h,ar1;將304h賦值給輔助寄存器ar1 st 5555h,*ar1;將內(nèi)存304h的內(nèi)容賦值給5555h,2468燈亮 portw *ar1,8001h;將內(nèi)存304h的值寫入8001h端口

ret _portb: stm 304h,ar1 st 0aaaah,*ar1;將內(nèi)存304h的內(nèi)容賦值給0aaaah,1257燈亮 portw *ar1,8001h;將內(nèi)存304h的值寫入8001h端口

retVector.asm.sect".vectors".ref_c_int00;引用函數(shù)c_int100.ref_int2c.align0x80;

頁邊界排列RESET:;復(fù)位中斷響應(yīng)BD_c_int00;延遲分支到C程序默認(rèn)入口地址c_int00是C程序的入口STM#200,SP;將堆棧寄存器SP的值設(shè)為200nmi:RETE;中斷屏蔽置為0,響應(yīng)中斷,不可屏蔽中斷是,是中斷屏蔽取消后返回。

NOPNOPNOPsint17.space4*16;

保留中斷向量的地址空間sint18.space4*16sint19.space4*16sint20.space4*16sint21.space4*16sint22.space4*16sint23.space4*16sint24.space4*16sint25.space4*16sint26.space4*16sint27.space4*16sint28.space4*16sint29.space4*16sint30.space4*16int0:;

中斷寄存器設(shè)置rete返回并允許中斷外部中斷產(chǎn)生時,直接返回。 RETENOPNOPNOPint1: RETENOPNOPNOPint2: b_int2c;定時器產(chǎn)生中斷時,返回到C程序中的timer函數(shù)。

NOPNOPtint: RETENOPNOPNOPrint0:;同步串口0(McBSP0)接受的中斷,直接返回

RETENOPNOPNOPxint0:;同步串口0(McBSP0)發(fā)送的中斷,直接返回

RETENOPNOPNOPrint1:;

同步串口1(McBSP1)接受的中斷,直接返回

RETENOPNOPNOPxint1:;同步串口1(McBSP1)發(fā)送的中斷,直接返回RETENOPNOPNOPint3: RETENOPNOPNOP實(shí)驗(yàn)截圖(六)A/D采樣實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.掌握利用TLV320AD50實(shí)現(xiàn)A/D轉(zhuǎn)換的技術(shù)基本原理和常用方法。2.學(xué)會DSP的多信道緩沖串口的應(yīng)用方法。3.掌握并熟練使用DSP和AD50的接口及其操作。4.通過實(shí)驗(yàn)加深對DSP系統(tǒng)頻譜混疊認(rèn)識。二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī),CCS2.0軟件,DSP仿真器,實(shí)驗(yàn)箱,示波器,連接導(dǎo)線。三、實(shí)驗(yàn)步驟和內(nèi)容1.實(shí)驗(yàn)連線用短接塊短接SS1的1,2腳,設(shè)置輸出低頻信號;短接S2的Sin腳,設(shè)置輸出正弦波信號,這時模擬信號產(chǎn)生單元SP1輸出為低頻正弦波。JD跳線斷開,設(shè)置語音處理單元輸入信號為交流;并用導(dǎo)線連接SP1腳和JAD3的1腳,將模擬低頻正弦波信號接入語音處理單元。用導(dǎo)線連接JAD1的INP和INPF,以及JAD2的INM和INMF,將語音處理單元輸出的差動模擬信號接入AD50輸入端。2.運(yùn)行CCS2.0軟件,裝入“exp06.pjt”工程文件,雙擊“exp06.pjt”及“Source”3.加載“exp06.out”示范程序,在“exp06.c”中“READAD50()”處,設(shè)置斷點(diǎn),運(yùn)行程序,通過用下拉菜單中的View/Graph的“Time/Frequency”打開一個圖形觀察窗口,調(diào)節(jié)輸入信號的頻率或幅值,觀察圖形情況(幅值和頻率),設(shè)置該圖形觀察窗口的參數(shù),觀察起始地址為0x1000H,長度為256的內(nèi)存單元內(nèi)的數(shù)據(jù),該資料為輸入信號經(jīng)A/D轉(zhuǎn)換之后的數(shù)據(jù),數(shù)據(jù)類型為16位整型,擊“Animate”運(yùn)行程序,在圖形觀察窗口觀察A/D轉(zhuǎn)換后的采樣波形。在圖形觀察窗口觀察A/D轉(zhuǎn)換后的采樣波形;源程序查看exp06.c#include"tms320uc5402.h";文件預(yù)處理ioportunsignedport8008;;全局變量定義與初始化//ad7822的地址unsignedintdata_buff[256];unsignedintj=0;函數(shù)、子程序聲明與定義voidsys_ini()//系統(tǒng)初始化子程序//全局禁止所有可屏蔽中斷asm("ssbxINTM");//(DRAM映射到程序空間和數(shù)據(jù)空間)向量表映射到0x0080空間PMST&=0x00FF;//io空間7個等待周期,程序與數(shù)據(jù)空間0個等待周期SWWSR=0x7000;//設(shè)置pll為div模式CLKMD=0x0000;//等待設(shè)置完成while(CLKMD==0x0001);//CLKOUT=(3+1)*CLKIN=40M,自動延時最長時間CLKMD=0x37FA;//CLKOUT=(1+1)*CLKIN=20M,自動延時最長時間//CLKMD=0x17FA;voidint1_ini()IMR=0x0002;//使能外部中斷1IFR=0xFFFF;//清除所有中斷標(biāo)志位asm("rsbxINTM");//全局使能可屏蔽中斷中斷服務(wù)子程序聲明與定義interruptvoidint1()//int1中斷子程序data_buff[j]=port8008&0x00FF;//讀取ad7822轉(zhuǎn)換數(shù)據(jù)j++;if(j==255)j=0;return;主程序voidmain(void)sys_ini();int1_ini();for(;;)vector.asm.global_main,_int1.sect".vecs";

自定義向量表

reset:b_main;復(fù)位中斷時跳轉(zhuǎn)到c程序主函數(shù)(branch

to

C

entry

point延遲分支到c程序,默認(rèn)入口地址c_int00)nopnopnmi:rete;NMI

非屏蔽外部中斷輸入引腳,不可屏蔽中斷時,返回并允許產(chǎn)生該中斷nopnopnop;保留中斷地址的空間

sin17:.space4*16sin18:.space4*16sin19:.space4*16sin20:.space4*16sin21:.space4*16sin22:.space4*16sin23:.space4*16sin24:.space4*16sin25:.space4*16sin26:.space4*16sin27:.space4*16sin28:.space4*16sin29:.space4*16sin30:.space4*16int0:retenopnopnopint1:b_int1;跳轉(zhuǎn)int1中斷子程序nopnopint2:rete;中斷寄存器設(shè)置為rete返回,允許中斷外部產(chǎn)生中斷,并且直接返回nopnopnoptint0:rete;TIMER0INTERRUPTnopnopnopbrint0:rete;BcBSP0RECEIVEINTERRUPTnopnopnopbxint0:rete;BcBSP0TRANSMITINTERRUPTnopnopnopdmac0:rete;RESERVEDORDMACHANNEL0INTERRUPTnopnopnoptint1_dmac1:rete;TIMER1INTERRUPTORDMACHANNEL1INTERRUPTnopnopnopint3:rete;EXTERNALINT3nopnopnophpint:rete;HPIINTERRUPTnopnopnopbrint1_dmac2:rete;McBSP1RECEIVEINTERRUPTORDMACHANNEL2INTERRUPTnopnopnopbxint1_dmac3:rete;McBSP1TRANSMITINTERRUPTORDMACHANNEL3INTERRUPTnopnopnopdmac4:rete;DMACHANNEL4INTERRUPTnopnopnopdmac5:rete;DMACHANNEL5INTERRUPTnopnopnop.end實(shí)驗(yàn)七:D/A轉(zhuǎn)換實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.掌握利用TLV320AD50實(shí)現(xiàn)D/A轉(zhuǎn)換的技術(shù)基本原理和常用方法。2.進(jìn)一步學(xué)習(xí)DSP的多信道緩沖串口的應(yīng)用方法。3.掌握并熟練使用DSP和AD50的輸出接口及其操作。二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī),CCS2.0版軟件,DSP仿真器,實(shí)驗(yàn)箱,示波器。三、實(shí)驗(yàn)步驟與內(nèi)容1.不需聯(lián)機(jī),通過示波器觀測輸出波形情況;2.運(yùn)行CCS軟件,加載示范源程序,了解實(shí)驗(yàn)程序;3.加載示范程序“exp07.out”,并通過File/Data/Load裝載波形數(shù)據(jù)sin.dat。4.按F5運(yùn)行程序,用示波器檢測JAD4的3腳AD50_DAout輸出一個正弦波;5.在程序中,改變相應(yīng)資料來實(shí)現(xiàn)改變波形和周期;得到的波形如下所示:查看源程序vector.asm .def Interrupt_Vectors; .refnNMI_SINT16; .refSINT17; .refSINT18; .refSINT19; .refSINT20; .refSINT21; .refSINT22; .refSINT23; .refSINT24; .refSINT25; .refSINT26; .refSINT27; .refSINT28; .refSINT29; .refSINT30; .ref_ExtInt0; .ref_ExtInt1; .ref_Tint0; .refBRINT0_SINT4; .refBXINT0_SINT5; .ref_Tint1; .ref_ExtInt3; .ref_mcbsp1_read; .ref_mcbsp1_write;.ref _ExtInt2 .ref _c_int00STACK_LEN.set100STACK .usect"STK",STACK_LEN.sect".vectors".align0x80;mustbealignedonpageboundary;theInterrutptableseespru13lg:P182Interrupt_Vectors:nRS_SINTR: ;ResetInterruptvector(vector_base+0x00)stm #STACK+STACK_LEN,SPb _c_int00nNMI_SINT16: ;Non-maskableInterruptVector(vector_base+0x04);b nNMI_SINT16 retenopnop ;nop ;SINT17: ;SoftwareInterrupt17Vector(vector_base+0x08);b SINT17 ;contextswitchretenopnop ;nop ;SINT18: ;SoftwareInterrupt18Vector(vector_base+0x0C);b SINT18retenopnop ;nop ;SINT19:;SoftwareInterrupt19Vector(vector_base+0x10);b SINT19retenopnop ;nop ;SINT20:;SoftwareInterrupt20Vector(vector_base+0x14);b SINT20retenopnop;nop ;SINT21:;SoftwareInterrupt21Vector(vector_base+0x18);b SINT21retenopnop ;nop;SINT22:;SoftwareInterrupt22Vector(vector_base+0x1C);b SINT22retenopnop ;nop ;SINT23:;SoftwareInterrupt23Vector(vector_base+0x20);b SINT23retenopnop ;nop ;SINT24:;SoftwareInterrupt24Vector(vector_base+0x24);b SINT24retenopnop ;nop ;SINT25:;SoftwareInterrupt25Vector(vector_base+0x28);b SINT25retenopnop ;nop ;SINT26:;SoftwareInterrupt26Vector(vector_base+0x2C);b SINT26retenopnop ;nop ;SINT27:;SoftwareInterrupt27Vector(vector_base+0x30);b SINT27retenopnop ;nop ;SINT28:;SoftwareInterrupt28Vector(vector_base+0x34);b SINT28retenopnop ;nop ;SINT29:;SoftwareInterrupt29Vector(vector_base+0x38);b SINT29retenopnop ;nop ;SINT30:;SoftwareInterrupt30Vector(vector_base+0x3C);b SINT30retenopnop ;nop ;nINT0_SINT0: ;ExternalInterrupt0Vector(vector_base+0x40) ;b_ExtInt0 rete nopnop ;nop nINT1_SINT1: ;ExternalInterrupt1Vector(vector_base+0x44);b_ExtInt1retenopnopnopnINT2_SINT2: ;ExternalInterrupt2Vector(vector_base+0x48) ;b_ExtInt2 rete nop nop nop TINT0_SINT3: ;TimerInterruptVector(vector_base+0x4C) ;b_Tint0 rete nop nop nopBRINT0_SINT4: ;McBSP#0receiveInteruptVector(vector_base+0x50);b BRINT0_SINT4retenopnop;nopBXINT0_SINT5: ;McBSP#0transmitInteruptVector(vector_base+0x54);b BXINT0_SINT5retenopnop;nopDMAC0_SINT6: ;DMAchannel0InteruptVector(vector_base+0x58)rete nop nop nopTINT1_DMAC1_SINT7: ;Timer1orDMAchannel1InteruptVector(vector_base+0x5C) ;b_Tint1 rete nop nop nopnINT3_SINT8: ;ExternalInterupt3Vector(vector_base+0x60) ;b_ExtInt3 rete nop nopnopHPINT_SINT9: ;HPIinterruptretenopnopnopBRINT1_DMAC2_SINT10: ;McBSP#1receiveorDMA2interruptretenopnopnop ;b _mcbsp1_read BXINT1_DMAC3_SINT11: ;McBSP#1transmitorDMA3interruptretenopnopnop;b _mcbsp1_writeDMAC4_SINT12: ;DMAchannel4 rete nop nop nopDMAC5_SINT13: rete nop nop nopRESERVED.space8*16 .end快速傅里葉變換(FFT)算法實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康募由顚FT算法原理和基本性質(zhì)的理解;熟悉FFT算法原理和FFT子程序的應(yīng)用;學(xué)習(xí)用FFT對連續(xù)信號和時域信號進(jìn)行譜分析,了解可能出現(xiàn)的分析誤差及其原因,以便在實(shí)際中正確應(yīng)用FFT。實(shí)驗(yàn)設(shè)備計(jì)算機(jī),CCS3.1版軟件,實(shí)驗(yàn)箱,DSP仿真器。基本原理離散傅里葉變換DFT的定義:將時域的采樣變換成頻域的周期性離散函數(shù),頻域的采樣也可以變換成時域的周期性離散函數(shù),將這樣的變換稱為離散傅里葉變換,簡稱DFT。FFT是DFT的一種快速算法,將DFT的N2步運(yùn)算減少為(N/2)log2N步,極大地提高了運(yùn)算的速度。旋轉(zhuǎn)因子的變化規(guī)律。蝶形運(yùn)算規(guī)律。基2FFT運(yùn)算。四、實(shí)驗(yàn)步驟1.學(xué)習(xí)DFT的定義、性質(zhì)和用DFT作譜分析的有關(guān)內(nèi)容;2.學(xué)習(xí)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論