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

28335 ADC 中断问题

请问下,28335用EPWM模块触发的ADC中断,是采样完成后才进入到ADC中断吗?在哪里有详细的描述

Eric Ma:

请问下,28335用EPWM模块触发的ADC中断,是采样完成后才进入到ADC中断吗?在哪里有详细的描述

ERIC:PWM触发ADC开始转换,一般来讲,会配置ADC转换完成之后产生ADC中断。看你程序中如何去配置中断。具体的描述你可以看一下ADC的user guide.

请问下,28335用EPWM模块触发的ADC中断,是采样完成后才进入到ADC中断吗?在哪里有详细的描述

xie liuyang:

回复 Eric Ma:

1、先是PWM 事件触发

    EPwm1Regs.ETCLR.bit.INT = 1;                //首先清除中断标志    EPwm1Regs.ETSEL.all = 0x0F09;    //EPwm1Regs.ETSEL.bit.INTEN = 1;    //EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;    //EPwm1Regs.ETSEL.bit.SOCAEN = 1;//    EPwm1Regs.ETSEL.bit.SOCASEL = ET_CTR_PRD;    //COMPAR_B的下降沿启动ADC    EPwm1Regs.ETPS.all = 0x0101;    //EPwm1Regs.ETPS.bit.INTPRD = 1;    //EPwm1Regs.ETPS.bit.SOCAPRD = 1;                //每一事件启动一次AD

2、ADC 终端配置

    AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;//     AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;  // Enable SEQ1 interrupt (every EOS)

3、ADC中断函数

isradc(){

    ADCcaculate();//ADC中断里面的运算函数  // Reinitialize for next ADC sequence     AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;         // Reset SEQ1      AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;       // Clear INT SEQ1 bit       PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;    // Acknowledge this interrupt

}

isradc()函数是ADC中断函数,在进入isradc前,是否ADC的结果寄存器都更行了

赞(0)
未经允许不得转载:TI中文支持网 » 28335 ADC 中断问题
分享到: 更多 (0)