paradoxfx

【原创】TI C2833x介绍---(9)快速中断响应

0
阅读(3664)

带有关键寄存器内容自动保存的快速中断响应功能,可以使用最小的延迟处理多个异步事件。在一个中断期间,C28x使用零周期惩罚(zero cycle penalty)来完成14 个寄存器的上下文的保存与恢复。这一特征可以用来帮助减少中断服务子程序的开销。其基本示意如图1所示;所自动保存的中断上下文如图2所示。

 

图1 快速中断响应管理

图2 自动保存寄存器上下文

 

其代码的示意为(以EPWM1定时中断为例)

voidmain(void)

{

……

IER = 0x0000;

    IFR = 0x0000;

    InitPieCtrl();

    InitPieVectTable();

    EPwm1Regs.ETSEL.bit.INTEN = 1;  

    EPwm1Regs.ETSEL.bit.INTSEL = 1;

    EPwm1Regs.ETPS.bit.INTPRD = 1;  

EPwm1Regs.ETCLR.bit.INT = 1;  

    EALLOW;

    PieVectTable.EPWM1_INT = &MainISR;

    EDIS;  

    PieCtrlRegs.PIEIER3.all = M_INT1;

    IER |= M_INT3;

……

    EINT;  

    ERTM;

……

……

interrupt voidMainISR(void)

{

……

    EPwm1Regs.ETCLR.bit.INT = 1;

    PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;

}