工具/软件:
尊敬的团队:
我正在为 ADC 执行此配置我面临的问题是没有在 ADC 结果寄存器上获得正确的计数如果我向 ADC 线提供1.65V 我需要获得2048个计数螺母它在我将代码加载到控制器的时候给了我不同的值。
void ADC_Config (void)
{
shortcktignor[0]= 0;
shortcktignor[1]= 0;
EALLOW;
//将 VREF 设置为内部
//
SetVREF (ADC_ADCA、ADC_EXTERNAL、ADC_VREF3P3);
SetVREF (ADC_ADCC、ADC_EXTERNAL、ADC_VREF3P3);
//
//将 ADCCLK 分频器设置为/4
//
AdccRegs.ADCCTL2.bit.prescale = 6;
//
//将脉冲位置设置为延迟 EOC
//
AdccRegs.ADCCTL1.bit.INTPULSEPOS = 1;
//
//给 ADC 上电、然后延迟1ms
//
AdccRegs.ADCCTL1.bit.ADCPWDNZ = 1;
AdcaRegs.ADCCTL2.bit.prescale = 6;
//
//将脉冲位置设置为延迟 EOC
//
AdcaRegs.ADCCTL1.bit.INTPULSEPOS = 1;
//
//给 ADC 上电、然后延迟1ms
//
AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1;
EDIS;
// delay_US (1000);
EALLOW;
AdcaRegs.ADCSOC0CTL.BIT.CHSEL = 0;
AdcaRegs.ADCSOC0CTL.BIT.ACQPS = 45;//cur0
AdcaRegs.ADCSOC0CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC1CTL.BIT.CHSEL = 1;
AdcaRegs.ADCSOC1CTL.BIT.ACQPS = 45;//cur0
AdcaRegs.ADCSOC1CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC2CTL.BIT.CHSEL = 2;
AdcaRegs.ADCSOC2CTL.bit.ACQPS = 45;//cur1
AdcaRegs.ADCSOC2CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC3CTL.BIT.CHSEL = 3;
AdcaRegs.ADCSOC3CTL.BIT.ACQPS = 45;//cur8
AdcaRegs.ADCSOC3CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC4CTL.BIT.CHSEL = 4;//cur9
AdcaRegs.ADCSOC4CTL.BIT.ACQPS = 45;
AdcaRegs.ADCSOC4CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC5CTL.BIT.CHSEL = 5;//dc_fb
AdcaRegs.ADCSOC5CTL.BIT.ACQPS = 45;//MTum.1
AdcaRegs.ADCSOC5CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC6CTL.bit.CHSEL = 6;//Mtemp1
AdcaRegs.ADCSOC6CTL.bit.ACQPS = 45;
AdcaRegs.ADCSOC6CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC7CTL.BIT.CHSEL = 7;//Mtemp2
AdcaRegs.ADCSOC7CTL.BIT.ACQPS = 45;
AdcaRegs.ADCSOC7CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC8CTL.BIT.CHSEL = 8;//OVT_FB
AdcaRegs.ADCSOC8CTL.BIT.ACQPS = 45;
AdcaRegs.ADCSOC8CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC9CTL.BIT.CHSEL = 9;//ANA_1
AdcaRegs.ADCSOC9CTL.BIT.ACQPS = 45;
AdcaRegs.ADCSOC9CTL.BIT.TRIGSEL = 5;
// AdccRegs.ADCSOC6CTL.BIT.CHSEL = 6;//ANA_2
// AdccRegs.ADCSOC6CTL.bit.ACQPS = 45;//IP_0
// AdccRegs.ADCSOC6CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC10CTL.BIT.CHSEL = 10;//ANA_2
AdcaRegs.ADCSOC10CTL.BIT.ACQPS = 45;
AdcaRegs.ADCSOC10CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC11CTL.BIT.CHSEL = 11;
AdcaRegs.ADCSOC11CTL.BIT.ACQPS = 45;//ANA_3
AdcaRegs.ADCSOC11CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCSOC12CTL.BIT.CHSEL = 12;
AdcaRegs.ADCSOC12CTL.BIT.ACQPS = 45;//ANA_4
AdcaRegs.ADCSOC12CTL.BIT.TRIGSEL = 5;
// AdcaRegs.ADCSOC14CTL.BIT.CHSEL = 14;
// AdcaRegs.ADCSOC14CTL.BIT.ACQPS = 45;//IP_4
// AdcaRegs.ADCSOC14CTL.BIT.TRIGSEL = 5;
//
// AdcaRegs.ADCSOC15CTL.BIT.CHSEL = 15;
// AdcaRegs.ADCSOC15CTL.BIT.ACQPS = 45;//IP_5
// AdcaRegs.ADCSOC15CTL.BIT.TRIGSEL = 5;
//----- IP CONFIG------------------
// AdccRegs.ADCSOC6CTL.BIT.CHSEL = 0;
// AdccRegs.ADCSOC6CTL.bit.ACQPS = 45;//IP_0
// AdccRegs.ADCSOC6CTL.BIT.TRIGSEL = 5;
//
// AdccRegs.ADCSOC10CTL.BIT.CHSEL = 1;
// AdccRegs.ADCSOC10CTL.BIT.ACQPS = 45;//IP_1
// AdccRegs.ADCSOC10CTL.BIT.TRIGSEL = 5;
//
// AdccRegs.ADCSOC0CTL.BIT.CHSEL = 2;
// AdccRegs.ADCSOC0CTL.BIT.ACQPS = 45;//IP_2
// AdccRegs.ADCSOC0CTL.BIT.TRIGSEL = 5;
//
// AdccRegs.ADCSOC1CTL.BIT.CHSEL = 3;
// AdccRegs.ADCSOC1CTL.BIT.ACQPS = 45;//IP_3
// AdccRegs.ADCSOC1CTL.BIT.TRIGSEL = 5;
//
// AdccRegs.ADCSOC4CTL.BIT.CHSEL = 4;
// AdccRegs.ADCSOC4CTL.BIT.ACQPS = 45;//IP_4
// AdccRegs.ADCSOC4CTL.BIT.TRIGSEL = 5;
//
// AdccRegs.ADCSOC7CTL.BIT.CHSEL = 5;
// AdccRegs.ADCSOC7CTL.BIT.ACQPS = 45;//IP_5
// AdccRegs.ADCSOC7CTL.BIT.TRIGSEL = 5;
AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 0;// SOC0的末尾将设置 INT1标志
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保清除 INT1标志
// AdccRegs.ADCINTSEL1N2.bit.INT1SEL = 0;// SOC0的末尾将设置 INT1标志
// AdccRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志
// AdccRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保清除 INT1标志
EDIS;
}