//#####################################################################
//文件: Example_281xAdcSeqModeTest.c //功能: 对通道A0的输入信号进行AD转换 //##################################################################### #include "DSP281x_ .h" //DSP2812 头文件 #include "DSP281x_Examples.h" //AD 定义 #define A _MODCLK 0x3 //HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 = 150/(2*3) = 25MHz #define ADC_CKPS 0x1 //ADC 模块时钟 = HSPCLK/2*ADC_CKPS = 25MHz/(1*2) = 12.5MHz #define ADC_SHCLK 0xf //ADC模块的采样/保持周期 = 16 ADC clocks #define AVG 1000 //平均采样界限 #define BUF_SIZE 2048 //采样 长度 //全局变量 Uint16 SampleTable[BUF_SIZE]; //主程序 main() { Uint16 i; //步骤1.初始化系统控制:PLL、看门狗、使能外设时钟 InitSysCtrl(); //本例的时钟配置 EALLOW; SysCtrlRegs.HISPCP.all = ADC_MODCLK; //HSPCLK = SYSCLKOUT/ADC_MODCLK EDIS; //步骤2.初始化GPIO //InitGpio(); //本例中略过 //步骤3.清除所有中断并初始化PIE控制寄存器,关 中断 DI ; //关全局中断 InitPieCtrl(); IER = 0x0000; //关所有CPU级中断 IFR = 0x0000; //清除CPU所有中断标志 //初始化中断向量表 InitPieVectTable(); //步骤4.初始化所有外设,本例中只初始化ADC //InitPeripherals(); //本例中不需要 InitAdc(); //初始化AD //本例中 ADC的设置 AdcRegs.AD L1.bit.ACQ_PS = ADC_SHCLK; AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS; AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //配置为级联模式 AdcRegs.ADCCH EQ1.bit.C V00 = 0x0; AdcRegs.ADCTRL1.bit.CONT_RUN = 1; //配置为连续转换模式 //步骤5.使能CPU中断 //初始化 SampleTable 为0 for (i=0; i