TI中文支持网
TI专业的中文技术问题搜集分享网站

麻烦各位看看,ADC采的数值总是3.0请问是怎么回事

用28335在编写adc的采集程序,但是采集到的电压总是3.0V,想请各位给看看,问题是出在了哪里,现附上adc配置程序:

void main(void)
{

InitSysCtrl();

InitEPwm1Gpio();

EALLOW;
#define ADC_MODCLK 0x3
SysCtrlRegs.HISPCP.all = ADC_MODCLK;
EDIS;

DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;
PieVectTable.ADCINT = &adc_isr;
EDIS;

EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;

InitEPwm1Example();

InitAdc();
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;

IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx6 = 1;
EINT;
ERTM;

kk=ii=0;
Uinput=8;
kp1=0.1;ki1=0.3;
kp2=0.1;ki2=0.3;
ek=ek1=0;
uk=0;
uk1=250;

AdcRegs.ADCREFSEL.bit.REF_SEL=1;
AdcRegs.ADCTRL1.bit.ACQ_PS = 0x4;//采样窗口预定标=ADCLK*(ACQ_PS+1)
AdcRegs.ADCTRL3.bit.ADCCLKPS =0x0;//高速外设时钟预定标系数
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // 级联排序
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x1;//允许SEQ1中断
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1;//复位SEQ1

AdcRegs.ADCMAXCONV.all = 0x0001; // Setup 2 conv's on SEQ1
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // Setup ADCINA3 as 1st SEQ1 conv.
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1;
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;// Enable SOCA from ePWM to start SEQ1
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // Enable SEQ1 interrupt (every EOS)
for(;;)
{
asm(" NOP");
}

}

Young Hu:

ADC引脚的电压是多少伏?

用28335在编写adc的采集程序,但是采集到的电压总是3.0V,想请各位给看看,问题是出在了哪里,现附上adc配置程序:

void main(void)
{

InitSysCtrl();

InitEPwm1Gpio();

EALLOW;
#define ADC_MODCLK 0x3
SysCtrlRegs.HISPCP.all = ADC_MODCLK;
EDIS;

DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;
PieVectTable.ADCINT = &adc_isr;
EDIS;

EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;

InitEPwm1Example();

InitAdc();
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;

IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx6 = 1;
EINT;
ERTM;

kk=ii=0;
Uinput=8;
kp1=0.1;ki1=0.3;
kp2=0.1;ki2=0.3;
ek=ek1=0;
uk=0;
uk1=250;

AdcRegs.ADCREFSEL.bit.REF_SEL=1;
AdcRegs.ADCTRL1.bit.ACQ_PS = 0x4;//采样窗口预定标=ADCLK*(ACQ_PS+1)
AdcRegs.ADCTRL3.bit.ADCCLKPS =0x0;//高速外设时钟预定标系数
AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; // 级联排序
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x1;//允许SEQ1中断
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1;//复位SEQ1

AdcRegs.ADCMAXCONV.all = 0x0001; // Setup 2 conv's on SEQ1
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // Setup ADCINA3 as 1st SEQ1 conv.
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1;
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;// Enable SOCA from ePWM to start SEQ1
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // Enable SEQ1 interrupt (every EOS)
for(;;)
{
asm(" NOP");
}

}

youqin guo:

回复 Young Hu:

通过AdcRegs.ADCREFSEL.bit.REF_SEL=1;设定为2.048V的

请问一下是不是在adc的配置上有问题的

赞(0)
未经允许不得转载:TI中文支持网 » 麻烦各位看看,ADC采的数值总是3.0请问是怎么回事
分享到: 更多 (0)