【原创】TI C2833x介绍---(9)快速中断响应
0赞
发表于 2011/12/6 17:03:29
阅读(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;
}