adc.c
来自「AD转换代码 采样2812。。。。。。。。。。。。。。。。。」· C语言 代码 · 共 46 行
C
46 行
#include "DSP281x_Device.h"
void DelayUs(volatile Uint16);
void InitAdc(void)
{
/*** ADC 模块复位 ***/
AdcRegs.ADCTRL1.bit.RESET = 1; // 复位ADC模块
asm(" RPT #10 || NOP"); // 必须等待12个周期(最差情况)以便复位有效
/*** ADC 上电次序 ***/
AdcRegs.ADCTRL3.all = 0x00C8; // 首先为ref和bandgap电路上电
DelayUs(5000); // ADCPWDN置位前等待5ms
AdcRegs.ADCTRL3.bit.ADCPWDN = 1; // ADCPWDN=1使ADC主模块上电
DelayUs(20); // 等待20us
/***配置ADC寄存器 ***/
AdcRegs.ADCMAXCONV.all = 0x0000;
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 2; // 转换通道2
AdcRegs.ADCTRL1.all = 0x2710;
AdcRegs.ADCTRL2.all = 0x0900;
/*** 使能ADC中断 ***/
PieCtrlRegs.PIEIER1.bit.INTx6 = 1;
IER |= 0x0001;
}
// AdcInit()结束
/*********************************************************************
* 函数:DelayUs() *
*********************************************************************/
void DelayUs( volatile Uint16 Usec )
{
while( Usec-- ) // 1us loop at 150MHz CPUCLK
{
asm(" RPT #139 || NOP");
}
} // end DelayUs()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?