您的当前位置:首页正文

中断设置技巧

2021-09-06 来源:步旅网
中断设置步骤

最近在做DSP,遇到一些中断的问题,总结一下,和大家讨论。 1.首先,是在主函数里需要注意的一些步骤,以T1的周期中断为例: void main(void) {

......... .........

//禁止和清除所有CPU中断 DINT;

IER=0x0000; IFR=0x0000; //初始化中断向量

InitPieCtrl(); //初始化中断向量表

InitPieVectTable(); //使能PIE中断

PieCtrlRegs.PIEIER2.bit.INTx4=1; //使能T1周期中断 //开CPU中断

IER |=M_INT2; //开中断2

EINT; //使能全局中断 ERTM; //使能实时中断 }

2.中断函数

一些朋友的中断函数没有把中断函数写在DSP28_DefaultIsr.C文件里,而是在主函数所在的文件里自己定义,其实这些工作TI的标准文件里都已经做好了,你只要在DSP28_DefaultIsr.C里找到相应的中断函数,把你所要实现的程序添加在里面就可以了。

interrupt void T1PINT_ISR(void) {

........... ...........

EvaRegs.EVAIFRA.bit.T1PINT=1; //清除中断标志位 PieCtrlRegs.PIEACK.bit.ACK2=1; //响应同组中断 EINT; //开全局中断 }

在退出中断的时候,一定要注意需要清除相应的中断标志位和开放同组中断,这样才能保证下一次成功进入中断。CPU级的中断标志位是不需要人工清除的,而

PIE级和外设级的中断标志位是需要人工清除的。

因篇幅问题不能全部显示,请点此查看更多更全内容