你(们)好。 我目前正在使用 F28069并使用在 APWM 模式下运行的 ECAP2中断。 我在 CTR 达到 CMP 时启用了中断、这里是我的中断服务函数
__interrupt void ecap2_isr(void){
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;
ECap2Regs.ECCLR.bit.INT = 1;
ECap2Regs.ECCLR.bit.CTR_EQ_CMP = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;
}
我希望看到 占空比约为50%且频率为 APWM 一半的脉冲波形。 但实际上、当我运行程序时、我发现占空比非常小(接近0)、频率与 APWM 相同。 因此、我认为我的中断标志清除过程可能存在一些问题、它会在每个 APWM 周期中触发两次正在运行的中断函数。
之后,我做了一项修改。 我更改上面代码的两行的顺序,如下所示
__interrupt void ecap2_isr(void){
GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1;
ECap2Regs.ECCLR.bit.CTR_EQ_CMP = 1;
ECap2Regs.ECCLR.bit.INT = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;
}
波形变为与我预期的相同。 但我不知道这种现象、您能不能给我一些与这种奇怪现象相关的信息? 谢谢你。

