麻烦问下,我的调试ad的时候没有使用pwm来触发ad开始采集,而是设置位连续采集方式,然后软件触发,但是ad一直没有工作起来。相应配置代码如下:
void adc_config(void)
{
int i = 0;
InitAdc();
AdcRegs.ADCREFSEL.bit.REF_SEL = 0x0; AdcRegs.ADCTRL1.bit.ACQ_PS = 15; AdcRegs.ADCTRL1.bit.CONT_RUN = 1; AdcRegs.ADCTRL1.bit.SEQ_OVRD = 0; AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; AdcRegs.ADCTRL1.bit.CPS = 0;
AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1 = 0; AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0; AdcRegs.ADCTRL3.bit.ADCCLKPS = 0x1; AdcRegs.ADCTRL3.bit.SMODE_SEL = 0;
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0; //第一个通道接通 ADCINA0
AdcRegs.ADCMAXCONV.all = 0; //1个adc输入通道
EALLOW;
PieVectTable.SEQ1INT = &local_ADC_INT_ISR;
EDIS;
IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx1 = 1;
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
}
然后在主函数中 通过这个语句来启动软件触发后,结果寄存器中一直没有数值
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1;
Gavin J:
ADC的时钟是否有正确配置? 例如:
EALLOW; SysCtrlRegs.HISPCP.all = ADC_MODCLK; EDIS;
麻烦问下,我的调试ad的时候没有使用pwm来触发ad开始采集,而是设置位连续采集方式,然后软件触发,但是ad一直没有工作起来。相应配置代码如下:
void adc_config(void)
{
int i = 0;
InitAdc();
AdcRegs.ADCREFSEL.bit.REF_SEL = 0x0; AdcRegs.ADCTRL1.bit.ACQ_PS = 15; AdcRegs.ADCTRL1.bit.CONT_RUN = 1; AdcRegs.ADCTRL1.bit.SEQ_OVRD = 0; AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; AdcRegs.ADCTRL1.bit.CPS = 0;
AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1 = 0; AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0; AdcRegs.ADCTRL3.bit.ADCCLKPS = 0x1; AdcRegs.ADCTRL3.bit.SMODE_SEL = 0;
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0; //第一个通道接通 ADCINA0
AdcRegs.ADCMAXCONV.all = 0; //1个adc输入通道
EALLOW;
PieVectTable.SEQ1INT = &local_ADC_INT_ISR;
EDIS;
IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx1 = 1;
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;
}
然后在主函数中 通过这个语句来启动软件触发后,结果寄存器中一直没有数值
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1;
YUNLONG LI3:
回复 Gavin J:
这个配置了