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.
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的结果寄存器都更行了