This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AD结果寄存器值始终为0



我现在AD采用的是级联同步采样模式,通道A0的结果寄存器是正常的,但是通道B0的结果寄存器值始终为0

void ADCInit(void)
{
// Configure ADC
 AdcRegs.ADCTRL1.bit.ACQ_PS = ADC_SHCLK;    //adc内部分频4位现在4分频12.5Mhz 
 AdcRegs.ADCTRL3.bit.ADCCLKPS = ADC_CKPS;   //可以再进行一次额外的二分频,为0则不分频
                                             //一次ADC转换的周期
   // AdcRegs.ADCTRL1.bit.SEQ_CASC = 0;        // 0 非级联模式
    AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;        //1 级联模式
    //顺序采样模式
    //AdcRegs.ADCTRL3.bit.SMODE_SEL=0
 //同步采样模式(考虑到可同时采样输入电压和电流)
    AdcRegs.ADCTRL3.bit.SMODE_SEL=1;
 
 //最大转换通道数,采样3个变量,每个采4次
 AdcRegs.ADCMAXCONV.all = 0x0007;       // Setup 2 conv's on SEQ1
    //采用启动停止方式,因为只是每个载波频率采样而已    
 AdcRegs.ADCTRL1.bit.CONT_RUN=0;
   
 //输入电压和电流:adcA0和adcB0
 //输出电压和电流:adcA1和adcB1
 AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;     // ADCINA0 & ADCINB0
 AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x1; //  ADCINA1 & ADCINB1
 AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x0; //
 AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x1; //
 AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x0; //
 AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 0x1;
 AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 0x0;
 AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 0x1;
 
 //允许epwm事件触发adc
 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)使能seq1中断

 // Assumes ePWM1 clock is already enabled in InitSysCtrl();
 }

这是AD初始化程序

请问这是怎么回事,应该怎么解决