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.

[参考译文] TMS320F28065:ISR 处理

Guru**** 2224720 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/770754/tms320f28065-isr-handling

器件型号:TMS320F28065

当在由 ePWM2触发的33khz 上使用 ADC ISR 时、ISR 代码所花费的时间超过中断时间、因此部分代码我已经移至 ePWM1 ISR。 现在、ADC ISR 时序减少了、但发生它的频率与以前不一致(可能是 PWM ISR 影响它、PWM ISR 以100kHz 的频率运行)。  

请建议我如何克服这一问题。

ADC ISR 是否可以优先于其它 ISR?

请指导我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ravi、

    请参阅 F2806x TRM 中的 PIE 分配表、第176-177页的表1-119:

    www.ti.com/lit/spruh18

    请注意、ADCINT1和 ADCINT2位于 INT1.1和 INT1.2 (高优先级模式)以及 INT10.1和 INT10.2 (低优先级模式)。 位于 INT1.1和 INT1.2时、ADC 的优先级将高于所有其他外设。

    如果您有兴趣、请参阅 F2806x 技术讲座以了解有关该器件的更多信息:

    processors.wiki.ti.com/.../C2000_Archived_Workshops

    但愿这对您有所帮助。 如果您的问题得到了解答、请单击绿色的"验证答案"按钮。 谢谢。

    - Ken
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    主席先生,

    感谢您的回答。 我有:

    PieCtrlRegs.PIEIER3.bit.INTx1 = 1;// pwm1
    PieCtrlRegs.PIEIER1.bit.INTx1 = 1;//在 PIE 组1中启用 ADCINT1
    PieCtrlRegs.PIEIER9.bit.INTx1 = 1;// PIE 组9,INT1 //sci Rx
    PieCtrlRegs.PIEIER9.bit.INTx2 = 1;// PIE 组9、int2 //sci TX
    PieCtrlRegs.PIEIER9.bit.INTx3=1;// PIE 组9,INT1 //sci Rx
    PieCtrlRegs.PIEIER9.bit.INTx4 = 1;// PIE 组9、int2 //sci TX

    ADC 初始化为:

    ///-------------------------------------------------------
    // ADC 初始化
    ///-------------------------------------------------------
    EALLOW;
    AdcRegs.ADCCTL1.bit.ADCBGPWD=1;  
    AdcRegs.ADCCTL1.bit.ADCREFPWD=1;  
    AdcRegs.ADCCTL1.bit.ADCPWDN = 1;  
    AdcRegs.ADCCTL1.bit.ADCENABLE = 1;  
    asm (" RPT#100 || NOP");

    AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;  
    AdcRegs.ADCCTL1.bit.TEMPCONV = 0;  
    AdcRegs.ADCCTL2.bit.ADCNONOVERLAP = 1;
    ///-------------------------------------------------------
    //配置 ADC
    ///-------------------------------------------------------

    AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC3CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC4CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC5CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC6CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC7CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC8CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC9CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC10CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC11CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC12CTL.bit.TRIGSEL = 7;
    AdcRegs.ADCSOC13CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC14CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC15CTL.bit.TRIGSEL = 7;  

    AdcRegs.ADCSOC0CTL.bit.CHSEL = 0x0;//转换通道
    AdcRegs.ADCSOC1CTL.bit.CHSEL = 0x1;//转换通道
    AdcRegs.ADCSOC2CTL.bit.CHSEL = 0x2;//转换通道
    AdcRegs.ADCSOC3CTL.bit.CHSEL = 0x3;//转换通道
    AdcRegs.ADCSOC4CTL.bit.CHSEL = 0x4;//转换通道
    AdcRegs.ADCSOC5CTL.bit.CHSEL = 0x5;//转换通道
    AdcRegs.ADCSOC6CTL.bit.CHSEL = 0x6;//转换通道
    AdcRegs.ADCSOC7CTL.bit.CHSEL = 0x7;//转换通道
    AdcRegs.ADCSOC8CTL.bit.CHSEL = 0x8;//转换通道
    AdcRegs.ADCSOC9CTL.bit.CHSEL = 0x9;//转换通道
    AdcRegs.ADCSOC10CTL.bit.CHSEL = 0xA;//转换通道
    AdcRegs.ADCSOC11CTL.bit.CHSEL = 0xB;//转换通道
    AdcRegs.ADCSOC12CTL.bit.CHSEL = 0xC;//转换通道
    AdcRegs.ADCSOC13CTL.bit.CHSEL = 0xD;//转换通道
    AdcRegs.ADCSOC14CTL.bit.CHSEL = 0xE;//转换通道
    AdcRegs.ADCSOC15CTL.bit.CHSEL = 0xF;//转换通道

    AdcRegs.ADCSOC0CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC1CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC2CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC3CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC4CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC5CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC6CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC7CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC8CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC9CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC10CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC11CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC12CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC13CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC14CTL.bit.ACQPS =采样;//采集窗口
    AdcRegs.ADCSOC15CTL.bit.ACQPS =采样;//采集窗口


    ///-------------------------------------------------------
    // ADCINT0配置
    ///-------------------------------------------------------
    AdcRegs.INTSEL1N2.bit.INT1CONT = 0;  
    AdcRegs.INTSEL1N2.bit.INT1E = 1;  
    AdcRegs.INTSEL1N2.bit.INT1SEL = 15;  

    ///-------------------------------------------------------
    EDIS;

    ///-----------------------------------------------------

    我收到不规则的 ADC ISR 时序、请参阅所附图片。 请向我推荐要做的事情。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    作为客户、我可以期待得到任何答案吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ravi:

    您能告诉我在 ADC 和 ePWM ISR 中正在执行哪些操作吗? ADC 中断标志在 ADC ISR 中被清除和确认。

    谢谢
    Vasudha
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    女士:

    我正在通过 ADC ISR 中的交流信号打开/关闭受控开关、我正在计算 ePWM ISR 中的三相电压/电流 RMS。

    ADC 中断在 ADC ISR 中被清除、如下所示:
    AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
    PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;
    返回;

    我想知道如何避免不规则的 ADC ISR 调用、因为这会由于时序变化而影响开关开/关操作。 PL 帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ravi:

    您如何捕获上述时序? 您是否还可以按照与 ADC ISR 相同的方式检查 PWM ISR? 这是为了检查 PWM ISR 是否干扰 ADC ISR。

    您能否检查您的应用中是否配置了同步模式? 除上述共享的代码外、是否还完成了任何其他 ADC 配置?

    谢谢
    Vasudha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    女士:

    时序由 GPIO 的置位和清零操作捕获。

    PL 请参阅随附的 ADC 和 PWM ISR 图像、二者一起捕获。

    我没有包括 同步模式配置。 但我尝试将 SIMULEN0设为 SIMULEN14、0和1、但 观察到相同的 ADC 两次调用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ravi:

    根据捕获的时序、如果在 ISR 开始时设置 GPIO、则 PWM ISR 似乎不会产生干扰。 因此、我们可以排除这种情况。

    谢谢
    Vasudha
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否共享示例中完成的与同时模式相关的配置或任何其他 ADC 相关的配置?

    我怀疑仅同时出现问题。

    谢谢
    Vasudha
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    女士:

    唯一的 ADC 配置初始化是:

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    EALLOW;

    AdcRegs.ADCCTL1.bit.ADCBGPWD=1;
    AdcRegs.ADCCTL1.bit.ADCREFPWD=1;  
    AdcRegs.ADCCTL1.bit.ADCPWDN = 1;  
    AdcRegs.ADCCTL1.bit.ADCENABLE = 1;  
    asm (" RPT#100 || NOP");

    AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;  
    AdcRegs.ADCCTL1.bit.TEMPCONV = 0;  
    AdcRegs.ADCCTL2.bit.ADCNONOVERLAP = 1;  
    ///-------------------------------------------------------
    //配置 ADC
    ///-------------------------------------------------------

    AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC3CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC4CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC5CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC6CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC7CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC8CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC9CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC10CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC11CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC12CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC13CTL.bit.TRIGSEL = 7;  
    AdcRegs.ADCSOC14CTL.bit.TRIGSEL = 7;
    AdcRegs.ADCSOC15CTL.bit.TRIGSEL = 7;  

    AdcRegs.ADCSOC0CTL.bit.CHSEL = 0x0;  
    AdcRegs.ADCSOC1CTL.bit.CHSEL = 0x1;  
    AdcRegs.ADCSOC2CTL.bit.CHSEL = 0x2;  
    AdcRegs.ADCSOC3CTL.bit.CHSEL = 0x3;  
    AdcRegs.ADCSOC4CTL.bit.CHSEL = 0x4;  
    AdcRegs.ADCSOC5CTL.bit.CHSEL = 0x5;  
    AdcRegs.ADCSOC6CTL.bit.CHSEL = 0x6;  
    AdcRegs.ADCSOC7CTL.bit.CHSEL = 0x7;
    AdcRegs.ADCSOC8CTL.bit.CHSEL = 0x8;
    AdcRegs.ADCSOC9CTL.bit.CHSEL = 0x9;  
    AdcRegs.ADCSOC10CTL.bit.CHSEL = 0xA;  
    AdcRegs.ADCSOC11CTL.bit.CHSEL = 0xB;  
    AdcRegs.ADCSOC12CTL.bit.CHSEL = 0xC;  
    AdcRegs.ADCSOC13CTL.bit.CHSEL = 0xD;  
    AdcRegs.ADCSOC14CTL.bit.CHSEL = 0xE;
    AdcRegs.ADCSOC15CTL.bit.CHSEL = 0xF;  

    AdcRegs.ADCSOC0CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC1CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC2CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC3CTL.bit.ACQPS =采样;
    AdcRegs.ADCSOC4CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC5CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC6CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC7CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC8CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC9CTL.bit.ACQPS =采样;
    AdcRegs.ADCSOC10CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC11CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC12CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC13CTL.bit.ACQPS =采样;  
    AdcRegs.ADCSOC14CTL.bit.ACQPS =采样;
    AdcRegs.ADCSOC15CTL.bit.ACQPS =采样;  


    AdcRegs.INTSEL1N2.bit.INT1CONT = 0;
    AdcRegs.INTSEL1N2.bit.INT1E = 1;  
    AdcRegs.INTSEL1N2.bit.INT1SEL = 15;  

    ///-------------------------------------------------------
    EDIS;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    我认为 PWM ISR 影响 ADC ISR 的原因是:  

    通过禁用 PWM ISR 或减少在 PWM ISR 中完成的计算、可以观察到 ADC ISR 的正确调用。

    PL 专家应该来解决这个问题、因为我们在产品中使用这个问题、应该得到解决。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ravi:

    ePWM1和 EPWM2之间是否启用了同步? 另外、让我知道哪个事件在 epwm2中生成 SOC 触发器、哪个事件为 epwm1生成中断。

    谢谢
    Vasudha
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ravi:

    如果需要、您可以共享您的代码以获得更好的帮助。

    谢谢
    Vasudha
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    女士:

    ePWM1和2不同步。 ePWM1配置:
    //------------------ 初始化 EPWM1 -------------------------------------------------------
    EALLOW;
    EPwm1Regs.TBPRD = ADC_ISR_F;// ADC_ISR_F = 2500
    EPwm1Regs.TBPHS.Half.TBPHS = 0x0000;
    EPwm1Regs.TBCTR = 0x0000;
    EPwm1Regs.CMPA.half.CMPA = ADC_ISR_F / 2;
    EPwm1Regs.CMPB = ADC_ISR_F / 2;
    EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
    EPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR;
    EPwm1Regs.AQCTLB.bit.CAU = AQ_SET;
    EPwm1Regs.AQCTLB.bit.ZRO = AQ_CLEAR;
    //为 PWM1设置死区
    EPwm1Regs.DBCTL.bit.OUT_MODE = DB_DISABLE;
    EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;
    EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
    EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
    EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
    EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;
    EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
    //设置隐藏
    EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
    EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

    //跳闸区域设置
    EPwm1Regs.TZSEL.bit.CBC1 = 1;
    EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
    EPwm1Regs.TZCTL.bit.TSB = TZ_FORCE_LO;
    EPwm1Regs.TZEINT.BIT.CBC = 1;

    //中断,我们将在其中更改死区
    EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
    EPwm1Regs.ETSEL.bit.INTEN = 1;
    EPwm1Regs.ETPS.bit.INTPRD = et_3rd;

    EDIS;

    ///////////////////////////////////
    ePWM2配置:
    EALLOW;
    EPwm2Regs.TBPRD = ADC_ISR_F;
    EPwm2Regs.TBPHS.ALL = 0;
    EPwm2Regs.TBCTR = 0;
    EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW;
    EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;
    EPwm2Regs.TBCTL.bit.PHSEN = TB_DISABLE;
    EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;
    EPwm2Regs.TBCTL.bit.HSPCLKDIV = TBH_DIV1;
    EPwm2Regs.TBCTL.bit.CLKDIV = TBH_DIV1;
    //将影子寄存器加载设置为零
    EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
    EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;


    /SOC 生成设置
    EPwm2Regs.ETSEL.bit.SOCAEN = 1;
    EPwm2Regs.ETSEL.bit.SOCASEL = ET_CTR_PRD;
    EPwm2Regs.ETPS.bit.SOCAPRD = ET_1ST;


    EPwm2Regs.CMPA.half.CMPA = ADC_ISR_F / 2;//1666;
    EPwm2Regs.CMPB = ADC_ISR_F / 2;//1666;

    EPwm2Regs.AQCTLA.bit.CAU = AQ_SET;
    EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR;
    EPwm2Regs.AQCTLB.bit.CBU = AQ_SET;
    EPwm2Regs.AQCTLB.bit.CBD = AQ_CLEAR;
    EDIS;
    ////////////////////////////////////////
    epwm1_ISR、用于电压和电流的 RMS 计算。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    作为客户、我可以期待得到任何答案吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    以下是一些建议:
    1) 1)减少 ISR 中的处理器负载、重新设计代码。
    2) 2)计算所需的总处理能力、您的问题是计时问题还是刚过载 CPU?
    3) 3)将时序关键 ISR 移至 RAM 以更快地运行它们
    4)使用更高的编译器优化级别
    5) 5)将 ISR 写入汇编语言
    6) 6)对某些 ISR 使用 CLA
    7) 7)使用速度更高的微控制器

    上面的列表看起来很明显,一般列表;但我保存了几次。

    mHg
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ravi:

    我认为问题是因为 SOC 触发器和中断触发器几乎相同。PFB 我认为正在发生的情况的描述:

    [引述]
    //中断,我们将在其中更改死区
    EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
    EPwm1Regs.ETSEL.bit.INTEN = 1;
    EPwm1Regs.ETPS.bit.INTPRD = et_3rd;[/quot]

    [引用 user="Ravi"/SOC 生成设置
    EPwm2Regs.ETSEL.bit.SOCAEN = 1;
    EPwm2Regs.ETSEL.bit.SOCASEL = ET_CTR_PRD;
    EPwm2Regs.ETPS.bit.SOCAPRD = et_1st;[/quot]

    在 thirt cnt =零事件发生时、PWM ISR 被命中、并且 ADC 已在第2个 cntr = prd (1个周期的差异)上被触发。 因此、在计算 ADC 结果之前、PWM ISR 已经开始执行、因此就在 ISR 完成后、挂起的 ADC 中断就会执行。 下一个 ADC 转换已在平均时间的第3个 cntr = prd 事件上触发、因此您会看到2个连续的 ADC 中断。 第三个 ADC 中断是不间断的、按预期执行。

    我认为您需要绕过 ADC SOC 触发器和 ePWM 中断触发时序、以避免冲突。 您可以尝试将触发器更改为任何其他事件、如 CMPA/CMPB 等

    此外、让我知道 ePWM ISR 和 ADC ISR 所需的时间吗?

    请告诉我这是否解决了您的问题。