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.

[参考译文] TMS320F28069:清除捕获中断的正确顺序

Guru**** 2551880 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1086168/tms320f28069-right-order-to-clear-capture-interrupt

部件号:TMS320F28069

您好,专家,

我有一位客户在使用 F28069。 他们发现,如果他们按不同的顺序清除 CAP 中断,则会面临不同的结果。

他们想知道原因。

ECAP 配置为上升边缘和下降边缘触发。 是绝对计数模式。

每次代码运行到捕获 ISR 时,GPIO 都会切换。 它还会改变触发边线。

在 ISR 捕获结束时,客户发现,如果按不同的顺序清除中断标志,则会出现不同的现象。

interrupt void zerocrossingISR(void)
{
//customer interrupt function includes change the capture polarity
ECap2Regs.ECCLR.bit.CTROVF=1;
ECap2Regs.ECCLR.bit.INT=1;//if put here, the capture waveform is abnormal
ECap2Regs ECCLR.bit.CEVT1=1;
ECap2Regs.ECCTL2.bit.REARM=1;
ECap2Regs.ECCLR.bit.INT=1;//if put here, the capture waveform is normal
PieCtrlRegs.PIEACK.all=PIEACK_GROUP4;
}

这是正常波形:

黄色:栅极电压,是捕获模块的输入。

绿色:GPIO,它将在代码每次运行到捕获 ISR 时切换。

这是异常波形及其放大。

巴西

艾玛

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

    艾玛,

    我今天将对此进行研究,并在星期一之前与大家进行讨论。

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

    桑托什,

    是否有更新?

    巴西

    艾玛

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

    您好,Emma,

    我与专家进行了核对。 这是预期的。 请参见下图:

    子中断(CEVT1,CEVT2,…) 必须先清除主中断 ECCLL.INT 或其它 ECCLL.INT,才能立即再次设置。 下图显示了这一点。  

    谢谢,此致,

    桑托什