dsp實驗報告 2_第1頁
dsp實驗報告 2_第2頁
dsp實驗報告 2_第3頁
dsp實驗報告 2_第4頁
dsp實驗報告 2_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 DSP實驗報告 院系名稱 電氣與信息工程學院 專業(yè)名稱 電氣工程及其自動化 班 級 電氣1002班 學生姓名 蘇 美 龍 學 號指導老師 易 吉 良 2013年 11 月 6 日 實驗一 撥碼開關(guān)實驗、實驗目的1.了解DSP開發(fā)系統(tǒng)的組成和結(jié)構(gòu)2.了解IO 的基本編程方法二、實驗設(shè)備計算機,CCS3.1版本軟件,DSP 仿真器,E300 實驗箱,2812CPU板(新的)三、實驗原理8位的數(shù)字量輸入(由撥碼開關(guān)產(chǎn)生),當撥碼打到靠近LED時為低。相反為高。通過74LS244(可讀)緩沖連接到DSP 的數(shù)據(jù)總線的低8 位。CPU 通過讀指令讀取到撥碼開關(guān)產(chǎn)生的8 位輸出的數(shù)字量,然后CPU通過寫

2、指令把讀出的8 位數(shù)字量寫入(0x0200)單元內(nèi),使連接到DSP的數(shù)據(jù)總線的低8 位的74LS273的輸出端產(chǎn)生高低信號,此時LED 燈產(chǎn)生亮滅。當對應(yīng)LED 燈點亮時說明輸出為低,熄滅時為高。(器件 74LS244和74LS273詳細的介紹請參看數(shù)據(jù)手冊)。數(shù)字量輸入輸出單元的資源分配如下:基地址:0000h(當CS0為0時分配有效)數(shù)字量分配空間為數(shù)據(jù)空間地址:基地址+0x200(低8位,只讀)撥碼開關(guān)擴展工作原理說明:74LS244 片選號、74LS273 片選信號和74LS273 復位信號由E300 上CPLD 譯碼產(chǎn)生。本實驗使用DSP 數(shù)據(jù)總線的低8位。本實驗的程序流程框圖如下:

3、四、實驗步驟1. 2812CPU板上的JUMP1的1和2腳短接,撥碼開關(guān)SW1的第二位置ON。2.E300 板上的開關(guān)SW4 的第一位置ON,其余OFF;SW5開關(guān)全部置ON;其余開關(guān)全部置OFF。3. 運行Code Composer Studio (CCS)(ccs3.1需要“DEBUGConnect” )4. 用“ProjectOpen”打開系統(tǒng)項目文件e300.test normalDSP2801x_examplee300_02_swich Exampla_281_swich.pjt;5. 編譯全部文件并裝載normalDSP2801x_examplee300_02_swich Exam

4、pla_281_swich.out;6. 單擊“Debug Go Main”跳到主程序的開始;7. 單擊“Debug RUN”運行程序8.任意撥動E300 底板上的撥動開關(guān),觀察LED和撥動開關(guān)的對應(yīng)情況。(LED1-LED7分別對應(yīng)DSP 數(shù)據(jù)總線的D0-D7);9.單擊“Debug Halt” 暫停持續(xù)運行,開關(guān)將對燈失去控制.10.關(guān)閉所有窗口,本實驗完。五、實驗結(jié)果設(shè)置好CCS的環(huán)境,打開本工程,編譯、下載、運行。調(diào)整數(shù)字輸入輸出單元的開關(guān)K1K8,觀察LED1LED8燈亮滅的變化為:撥動LED1LED8燈相應(yīng)的開關(guān)K1K8,則對應(yīng)的燈亮滅。修改后的實驗原程序:#include &qu

5、ot;DSP281x_Device.h" / DSP281x Headerfile Include File#include "DSP281x_Examples.h" / DSP281x Examples Include Filevoid main(void) unsigned int temp; temp = 0; InitSysCtrl();/初始化PLL,WatchDog,使能外圍時鐘,該初始化文件在"DSP281x_SysCtrl.c"中DINT;/關(guān)閉CPU中斷InitPieCtrl();IER = 0x0000;/關(guān)閉中斷和清除所有

6、中斷標志 IFR = 0x0000;InitPieVectTable(); for(;) asm(" nop ");temp = *(int *)0x2200&0x0007; /讀入0x2200地址的開關(guān)量值并賦給tempswitch(temp) case 0x0000:* (int *)0x2200 = 0x00fe; break; case 0x0001:* (int *)0x2200 = 0x00fd; break; case 0x0002:* (int *)0x2200 = 0x00fb; break; case 0x0003:* (int *)0x2200

7、 = 0x00f7; break; case 0x0004:* (int *)0x2200 = 0x00ef; break;case 0x0005:* (int *)0x2200 = 0x00df; break;case 0x0006:* (int *)0x2200 = 0x00bf; break;case 0x0007:* (int *)0x2200 = 0x007f; break;default:break; asm(" nop ");asm(" nop "); 實驗二 定時器實驗一、實驗目的1、熟悉F2812的CPU定時器;2、掌握F2812的CP

8、U定時器的控制方法;3、學會使用CUP定時器中斷方式控制程序流程。二、實驗設(shè)備計算機,CCS3.1版軟件,DSP硬件仿真器,E300實驗箱,2812CPU板。3、 實驗原理說明樣例實驗是采用CPU定時器來定時LED亮滅的。F2812的CPU定時器不同于事件管理器(EVAEVB)中的通用定時器(GP)。F2812的CPU共有三個定時器,其中,CPU1定時器1和2被保留用作實驗操作系統(tǒng)OS例如DSPBIOS),CPU定時器0可以供用戶使用。定時器的一般操作如下:將周期寄存器PRDH:PRD中的值裝入32位計數(shù)器寄存器TIMI:TIM。然后計數(shù)器寄存器以F2812x的SYSCLKLT速率遞減。當計數(shù)

9、器減到0,就會產(chǎn)生一個定時器中斷輸出定時信號(一個中斷脈沖)。下圖為CPU定時器的內(nèi)部結(jié)構(gòu):樣例實驗的程序如下:4、 實驗步驟和內(nèi)容 1、F2812CPU板的JUPMI的1和2腳短接,撥碼開關(guān)SW1的第二位置ON;其余OFF。 2、E300 底板的開關(guān)SW4 的第1位置ON,其余位置OFF。其余開關(guān)設(shè)置為OFF; 3、運行CCS軟件,調(diào)入樣例程序,裝載并運行;(進入CCS界面后需要點“Debug-Connect”); 4、加載“.e300_03cpu_timerDebugEample_281x_cpu_timer.out”;單擊“Debug Animate”運行,可觀察到LED1LED8的變化

10、規(guī)律: 先LED1,8點亮LED2,7D點亮LED1,8熄滅LED3,6點亮LED2,7熄滅LED4,5點亮LED3,6熄滅后LED4,5熄滅LED3,6點亮LED3,6熄滅LED2,7點亮LED2,7熄滅LED1,8點亮。6、單擊“Debug Halt”,暫停程序運行,LED燈停止閃爍;單擊“RUN”,LED燈又開始閃爍變化;7、 結(jié)束試驗程序8、修改后的實驗原程序:#include "DSP281x_Device.h" #include "DSP281x_Examples.h" interrupt void cpu_timer0_isr(void);

11、void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period);void main(void) unsigned int temp; temp = 0; InitSysCtrl(); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; PieVectTable.TINT0 = &cpu_timer0_isr; EDIS; InitCpuTimers(); ConfigCpuTimer(&Cpu

12、Timer0, 100, 100000); StartCpuTimer0(); IER |= M_INT1; PieCtrlRegs.PIEIER1.bit.INTx7 = 1; EINT; ERTM; for(;) temp = *(int *)0x2200&0x0001;if (temp=0) if(CpuTimer0.InterruptCount<1) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fe; *(int *)0x2200=0x007f; else if(CpuTimer0.

13、InterruptCount<2) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fe; *(int *)0x2200=0x007f; *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if(CpuTimer0.InterruptCount<3) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else i

14、f(CpuTimer0.InterruptCount<4) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<5) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=0x

15、00df; else if(CpuTimer0.InterruptCount<6) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; *(int *)0x2200=0x00f7; *(int *)0x2200=0x00ef; else if(CpuTimer0.InterruptCount<7) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00f7; *(int

16、 *)0x2200=0x00ef; else if(CpuTimer0.InterruptCount<8) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00ff; else if(CpuTimer0.InterruptCount<9) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<10)

17、 asm(" nop "); asm(" nop "); *(int *)0x2200=0x00ff; else if(CpuTimer0.InterruptCount<11) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if(CpuTimer0.InterruptCount<12) asm(" nop "); asm(" nop "); *(int

18、*)0x2200=0x00ff; else CpuTimer0.InterruptCount = 0; else if (temp=1) if(CpuTimer0.InterruptCount<9) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fe; *(int *)0x2200=0x007f; else if(CpuTimer0.InterruptCount<8) asm(" nop "); asm(" nop "); *(int *)0x2200=0

19、x00fe; *(int *)0x2200=0x007f; *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if(CpuTimer0.InterruptCount<3) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if(CpuTimer0.InterruptCount<4) asm(" nop "); asm(" nop "); *(in

20、t *)0x2200=0x00fd; *(int *)0x2200=0x00bf; *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<5) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<6) asm(" nop "); asm(" nop &

21、quot;); *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; *(int *)0x2200=0x00f7; *(int *)0x2200=0x00ef; else if(CpuTimer0.InterruptCount<7) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00f7; *(int *)0x2200=0x00ef; else if(CpuTimer0.InterruptCount<8) asm(" nop "); asm(

22、" nop "); *(int *)0x2200=0x00ff; else if(CpuTimer0.InterruptCount<9) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<10) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00ff; else if(CpuTi

23、mer0.InterruptCount<11) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if(CpuTimer0.InterruptCount<12) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00ff; else CpuTimer0.InterruptCount = 0; interrupt void cpu_timer0_isr(voi

24、d) CpuTimer0.InterruptCount+; PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;實驗三 鍵盤接口實驗(E300)、實驗目的1. 了解DSP開發(fā)系統(tǒng)的組成和結(jié)構(gòu)2. 了解鍵盤的基本編程方法3. 內(nèi)存觀察工具的使用二、實驗設(shè)備計算機,CCS3.1版本軟件,DSP 仿真器,E300 實驗箱,2812CPU板三、實驗原理本實驗程序由二部分組成:1.由外部中斷2產(chǎn)生中斷信號2.鍵值讀取程序:該部分有兩種方法進行鍵值的判斷。方法1:利用內(nèi)存觀察工具進行觀察方法2:利用LED1-LED8 的亮滅對應(yīng)顯示鍵值。a) 外部中斷2的應(yīng)用參照實驗二;b) 內(nèi)

25、存觀察鍵值:程序中定義了三個變量“W”“row”和“col”?!癢”代表是CPLD 中鍵盤的掃描數(shù)值,“row”和“col”分別代表鍵盤的行和列,由行和列可以判定按鍵的位置。上述三個變量可以在觀察窗口中觀察的。c) 利用LED 燈顯示鍵值原理,參看實驗一。具體的LED 燈顯示值以查表的形式讀出,請參看“e300_codec.h”庫文件。本實驗的CPLD地址譯碼說明: 基地址:0x2000,當?shù)装迤xCS1為低時,分配有效。 CPU的數(shù)據(jù)空間:基地址+0x0200 LED燈 output8外部中斷用XINT2:由CPLD分配,中斷信號由鍵盤產(chǎn)生。 中斷下降沿觸發(fā)。KEY_DAY_REG(R):基

26、地址+0x0004;四、實驗步驟和內(nèi)容 1. 2812CPU板JUMP1的1和2腳短接,撥碼開關(guān)SW1的第二位ON; 2.E300 板上的開關(guān)SW4 的第一位置ON,其余OFF;SW3 的第四位置ON 其余的SW 置OFF;3.運行Code Composer Studio (CCS)(ccs3.1需要“DEBUGConnect” );4.打開系統(tǒng)項目文件e300.test normal DSP281x_examplese300_06_key interface Example_281x_ keyled.pjt;5.編譯全部文件并裝載“Debug keyled.out”文件;6.單擊“Debug

27、Go Main”跳到主程序的開始;7.指定位置設(shè)置斷點;8. View-Watch Window 打開變量觀察窗口; 將變量“w”“ row”和“ col”添加到觀察窗口中,改變變量觀察窗口的顯示方式為HEX 顯示; 點擊“Debug-Animate”全速運行,然后點擊E300 板上鍵盤按鍵,觀察窗口中變量變化,同時LED1-LED8 燈也相應(yīng)變化,指示鍵值。(注意程序中KEY_E和KEY_F分別代表鍵盤上的“*”和“#”鍵值。十六進制數(shù)代表的意義為:高4 位為按鍵的行值,低4 位為按鍵的列值。注意:“w”中的低八位表; 11.關(guān)閉所有窗口,本實驗完畢。五、實驗程序框圖修改后的實驗原程序:#i

28、nclude "DSP281x_Device.h" / DSP281x Headerfile Include File#include "DSP281x_Examples.h" / DSP281x Examples Include File#include "e300_codec.h"void init_xint2(void);interrupt void xint2_isr(void); /中斷2中斷子程序void read_data ();/讀取數(shù)據(jù)子函數(shù)void conv(void);/鍵盤數(shù)值轉(zhuǎn)換子函數(shù)interrupt vo

29、id cpu_timer0_isr(void);void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period);unsigned int row,col,w;int a=0;unsigned int temp=0;void init_xint2() XIntruptRegs.XINT2CR.all=0x0001; /低電平觸發(fā)中斷 interrupt void xint2_isr() /中斷2中斷子程序 a=1; /開總中斷 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; in

30、terrupt void cpu_timer0_isr(void) CpuTimer0.InterruptCount+;more interrupts from group 1 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; void main(void)ClocksDSP281x_SysCtrl.c file. InitSysCtrl(); DINT;default state.disabled and flags InitPieCtrl();CPU interrupt flags: IER = 0x0000; IFR = 0x0000;to the shel

31、l Interrupt InitPieVectTable(); EALLOW; / This is needed to write to EALLOW protected registers PieVectTable.XINT2 = &xint2_isr; PieVectTable.TINT0 = &cpu_timer0_isr; EDIS; InitCpuTimers(); / For this example, only initialize the Cpu Timerssecond:uSeconds) ConfigCpuTimer(&CpuTimer0, 100,

32、 100000); StartCpuTimer0(); init_xint2(); PieCtrlRegs.PIEIER1.all = 0x0050; IER |= M_INT1 ; EINT; / Enable Global interrupt INTM ERTM; / Enable Global realtime interrupt DBGM for(;) if(a=1)/加軟件斷點 temp = *(int *)0x2200&0x0001;if (temp=0) if(CpuTimer0.InterruptCount<1) asm(" nop "); a

33、sm(" nop "); *(int *)0x2200=0x00fe; *(int *)0x2200=0x007f; else if(CpuTimer0.InterruptCount<2) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fe; *(int *)0x2200=0x007f; *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if(CpuTimer0.InterruptCount<3) asm(" no

34、p "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if(CpuTimer0.InterruptCount<4) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<5) a

35、sm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<6) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; *(int *)0x2200=0x00f7; *(int *)0x2200=0x00ef; else if(CpuTimer0.InterruptC

36、ount<7) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00f7; *(int *)0x2200=0x00ef; else if(CpuTimer0.InterruptCount<8) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00ff; else if(CpuTimer0.InterruptCount<9) asm(" nop "); asm(" nop ")

37、; *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<10) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00ff; else if(CpuTimer0.InterruptCount<11) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if

38、(CpuTimer0.InterruptCount<12) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00ff; else CpuTimer0.InterruptCount = 0; else if (temp=1) if(CpuTimer0.InterruptCount<9) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fe; *(int *)0x2200=0x007f; else if(CpuTimer

39、0.InterruptCount<8) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fe; *(int *)0x2200=0x007f; *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if(CpuTimer0.InterruptCount<3) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else

40、 if(CpuTimer0.InterruptCount<4) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<5) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=

41、0x00df; else if(CpuTimer0.InterruptCount<6) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; *(int *)0x2200=0x00f7; *(int *)0x2200=0x00ef; else if(CpuTimer0.InterruptCount<7) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00f7; *(i

42、nt *)0x2200=0x00ef; else if(CpuTimer0.InterruptCount<8) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00ff; else if(CpuTimer0.InterruptCount<9) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fb; *(int *)0x2200=0x00df; else if(CpuTimer0.InterruptCount<1

43、0) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00ff; else if(CpuTimer0.InterruptCount<11) asm(" nop "); asm(" nop "); *(int *)0x2200=0x00fd; *(int *)0x2200=0x00bf; else if(CpuTimer0.InterruptCount<12) asm(" nop "); asm(" nop "); *(in

44、t *)0x2200=0x00ff; else CpuTimer0.InterruptCount = 0; read_data();/ conv(); else 6、 實驗建議 本實驗程序采用外部中斷的方式來判斷鍵盤是否被按下,除了這種方法外,還可以根據(jù)鍵盤按下標志位“KEY_FLAG”,利用查詢方式來編寫程序,“KEY_FLAG”是CPLD內(nèi)部狀態(tài)寄存器中的一個只讀位.CPLD內(nèi)部狀態(tài)寄存器:CPLD_ST實驗四 A/D轉(zhuǎn)換實驗(E300)一、實驗目的1 了解DSP 中A/D轉(zhuǎn)換模塊的特點;2 了解A/D轉(zhuǎn)換模塊的原理結(jié)構(gòu);3 掌握A/D轉(zhuǎn)換模塊的使用。二、實驗設(shè)備計算機,DSP仿真器,TH

45、RSC-2型實驗箱各一臺。三、實驗原理TMS320F2812的ADC模塊是一個12位分辨率、高達80ns轉(zhuǎn)換時間、具有流水線結(jié)構(gòu)的模數(shù)轉(zhuǎn)換器。此轉(zhuǎn)換器的模擬電路包括:前端模擬多路復用器(MUXs)、采樣/保持電路(S/H)、轉(zhuǎn)換核、電壓調(diào)節(jié)器以及其他模擬支持電路。數(shù)字電路包括:可編程轉(zhuǎn)換序列發(fā)生器、轉(zhuǎn)換結(jié)果寄存器、模擬電路接口、設(shè)備外圍總線接口以及其他片上模塊接口等,可以直接用于電機或運動控制場合。四、實驗內(nèi)容與步驟連接好仿真器、計算機與實驗箱,系統(tǒng)上電,實驗箱電源指示燈亮,仿真器上紅色指示燈亮,系統(tǒng)連接正常。打開CCS3.1軟件。圖1.6.3 實驗程序流程圖1圖1.6.3為A/D實驗程序流程

46、圖:采集電位器電壓。A/D用16個通道采集當前電壓值,取平均值,將十六進制數(shù)轉(zhuǎn)換成十進制數(shù),并處理成電壓量輸出給液晶屏顯示,循環(huán)上述操作。2打開實驗程序dsp2812.1.6-ADC目錄下的工程ADC.pjt,點 編譯、下載。按“F5”運行,液晶屏顯示當前DSP的ADCINA2(對應(yīng)試驗箱A/D轉(zhuǎn)換單元的ADCINA)通道電壓值,調(diào)節(jié)A/D轉(zhuǎn)換單元的電位器,改變輸入電壓,顯示隨之變化,顯示電壓在03.3V之間。3點“Halt”,停止程序運行,恢復程序指令初始值,并保存,關(guān)閉所有窗口,實驗完畢。修改后的實驗原程序:#include "DSP281x_Device.h" / D

47、SP281x Headerfile Include File#include "DSP281x_Examples.h" / DSP281x Examples Include Fileinterrupt void adc_isr(void);Uint16 LoopCount;Uint16 ConversionCount; double input1256; double input2256;Uint16a4,b4;Uint16 sum1=0,sum2=0void main(void) InitSysCtrl(); EALLOW; SysCtrlRegs.PLLCR.all=0

48、x8; SysCtrlRegs.HISPCP.all = 0x3; / HSPCLK = SYSCLKOUT/6 EDIS; DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); EALLOW; / This is needed to write to EALLOW protected register PieVectTable.ADCINT = &adc_isr; EDIS; / This is needed to disable write to EALLOW protected registers InitAdc(); / For this example, init the ADC PieCtrlRegs.PIEIER1.bit.INTx6 = 1; IER |= M_INT1; / Enable CPU Interru

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論