paradoxfx

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

0
阅读(2279)

带有关键寄存器内容自动保存的快速中断响应功能,可以使用最小的延迟处理多个异步事件。在一个中断期间,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;

}

Baidu
map