DSP28335 ADC程序 中文說(shuō)明_第1頁(yè)
DSP28335 ADC程序 中文說(shuō)明_第2頁(yè)
DSP28335 ADC程序 中文說(shuō)明_第3頁(yè)
DSP28335 ADC程序 中文說(shuō)明_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、* 例程功能:利用中斷定時(shí)器每隔一秒鐘,從DSP28335的A0、A1口接收模擬信號(hào),并轉(zhuǎn)換為數(shù)字信號(hào)存放在SampleTable1,SampleTable2中。 * */#include "DSP2833x_Device.h" / DSP2833x頭文件#include "DSP2833x_Examples.h" / DSP2833x Examples Include File/ ADC啟動(dòng)參數(shù)#if (CPU_FRQ_150MHZ) / Default - 150 MHz SYSCLKOUT #define ADC_MODCLK 0x3 / HSPC

2、LK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25.0 MHz#endif#if (CPU_FRQ_100MHZ) #define ADC_MODCLK 0x2 / HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 100/(2*2) = 25.0 MHz#endif#define ADC_CKPS 0x1 / ADC module clock = HSPCLK/2*ADC_CKPS = 25.0MHz/(1*2) = 12.5MHz#define ADC_SHCLK 0xf / S/H width in ADC module per

3、iods = 16 ADC clocks#define PIEACK_GROUP1 0x0001interrupt void ISRTimer0(void);int SampleTable1=0,SampleTable2=0;int count,count1,count2;main()/ 步驟1.初始化系統(tǒng)控制:PLL,WatchDog,啟用外設(shè)時(shí)鐘該示例函數(shù)可在DSP2833x_SysCtrl.c文件中找到。 InitSysCtrl();/ ADC工作時(shí)鐘設(shè)置: EALLOW; SysCtrlRegs.HISPCP.all = ADC_MODCLK;/ HSPCLK = SYSCLKOUT/

4、ADC_MODCLK,ADC工作的標(biāo)準(zhǔn)頻率 EDIS;/ 步驟2.初始化GPIO:該示例函數(shù)位于DSP2833x_Gpio.c文件中,并說(shuō)明如何將GPIO設(shè)置為默認(rèn)狀態(tài)。/ InitGpio(); / 在這個(gè)例子中被跳過(guò)/ 第3步。清除所有中斷并初始化PIE矢量表:禁用CPU中斷 DINT;/ 初始化PIE控制寄存器為默認(rèn)狀態(tài)。默認(rèn)狀態(tài)是禁止所有的PIE中斷并清除標(biāo)志。/ 這個(gè)函數(shù)可以在DSP2833x_PieCtrl.c文件中找到。 InitPieCtrl();/ 禁用CPU中斷并清除所有CPU中斷標(biāo)志: IER = 0x0000; IFR = 0x0000;/ Initialize the

5、 PIE vector table with pointers to the shell Interrupt/ Service Routines (ISR)./ 這將填充整個(gè)表,即使在這個(gè)例子中沒(méi)有使用中斷。 這對(duì)于調(diào)試目的很有用。/ The shell ISR routines are found in DSP2833x_DefaultIsr.c./ 該函數(shù)在DSP2833x_PieVect.c中找到。 InitPieVectTable(); EALLOW; PieVectTable.TINT0=&ISRTimer0;/ 告訴定時(shí)器0的中斷地址為中斷向量表的INT0 EDIS; In

6、itCpuTimers(); ConfigCpuTimer(&CpuTimer0,150,1000000); StartCpuTimer0(); /CPU第一組中斷將會(huì)產(chǎn)生,并使能第一組中斷的第七個(gè)小中斷 IER|=M_INT1; PieCtrlRegs.PIEIER1.bit.INTx7=1;/ 步驟4.初始化所有器件外設(shè):此功能可在DSP2833x_InitPeripherals.c中找到 InitAdc(); /ADC初始化設(shè)置/ ADC工作方式設(shè)置: AdcRegs.ADCTRL1.bit.ACQ_PS = ADC_SHCLK; / 設(shè)置采集窗的大小。該控制位控制SOC脈沖的寬

7、度,SOC脈沖信號(hào)的寬度等于 ADCLK周期 *(ADC_SHCLK+1) AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS; / 核心時(shí)鐘分頻。ADC模塊時(shí)鐘 = HSPCLK/2*ADC_CKPS = 25.0MHz/(1*2) = 12.5MHz AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; / 建立級(jí)聯(lián)序列方式 AdcRegs.ADCTRL1.bit.CONT_RUN = 1; / 讀取完轉(zhuǎn)換序列后停止 AdcRegs.ADCTRL1.bit.SEQ_OVRD = 1; / 使能排序覆蓋 AdcRegs.ADCCHSELSEQ1.bi

8、t.CONV00 = 0x0; / 設(shè)置ADCINA0作為第一個(gè)變換 AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; / 設(shè)置ADCINA1作為第一個(gè)變換 AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0x1; / 最大采集通道/ 第5步。用戶特定的代碼,啟用中斷: EINT; / 啟用全局中斷INTM ERTM; / 啟用全局實(shí)時(shí)中斷DBGM AdcRegs.ADCTRL2.all = 0x2000; / 啟動(dòng)SEQ1 interrupt void ISRTimer0(void) while (AdcRegs.ADCST.bit.INT_SEQ1=0) / 等待中斷 AdcRegs.ADCTRL3.bit.SMODE_SEL = 1; /設(shè)置同步采樣模式 AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; /向該位寫(xiě)1,清除SEQ1中斷標(biāo)志位 SampleTable1=(AdcRegs.ADCRESULT0>>4); /取A0數(shù)據(jù)并記錄在SampleTable1數(shù)組中 SampleTable2=(AdcRegs.ADCRESULT1>>4); /取A1數(shù)據(jù)并記錄在SampleTable2數(shù)組中 PieCtrlRegs.PIEACK.all=PIEACK_GROUP

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論