📄 adc.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -