欢迎来到天天文库
浏览记录
ID:57687489
大小:17.50 KB
页数:2页
时间:2020-09-01
《DSP中断优先级设置.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、原以为2812中断不能设置优先级。实际上硬件上优先级是做好的。但软件上有办法来设置优先级。请往下看:1.首先要找到文件,DSP281x_SWPrioritizedDefaultIsr.c和DSP281x_SWPrioritizedIsrLevels.h加载到你的程序当中。2.在DSP281x_SWPrioritizedIsrLevels.h文件中先设置中断组的优先级级别。其中:0表示不使用;1表示优先级最高中;16表示优先级最低; 比如:我设置第9组优先级最高,第3组次之,第2,4,6组优先级为第三。其他以此类推。0表示不用。 #define INT1
2、PL 4 //Group1Interrupts(PIEIER1) #define INT2PL 3 //Group2Interrupts(PIEIER2) #define INT3PL 2 //Group3Interrupts(PIEIER3) #define INT4PL 3 //Group4Interrupts(PIEIER4) #define INT5PL 4 //Group5Interrupts(PIEIER5) #def
3、ine INT6PL 3 //Group6Interrupts(PIEIER6) #define INT7PL 0 //reserved #define INT8PL 0 //reserved #define INT9PL 1 //Group9Interrupts(PIEIER9) #define INT10PL 0 //reserved #define INT11PL 0 //reserved
4、#define INT12PL 0 //reserved #define INT13PL 5 //XINT3 #define INT14PL 5 //INT14(TINT2) #define INT15PL 5 //DATALOG #define INT16PL 5 //RTOSINT3.级中断设置好以后,我们就要设置每一组里的中断优先级级别。其中:0表示不用;1表示优先级最高;8表示优先级最低; 以第9组为例说明:其中,ECA
5、N0INTA优先级最高;ECAN1INTA为第2,SCIRXINTA为第3。其他自己数。 #define G91PL 3 //SCIRXINTA(SCI-A) #define G92PL 5 //SCITXINTA(SCI-A) #define G93PL 6 //SCIRXINTB(SCI-B) #define G94PL 4 //SCITXINTB(SCI-B) #define G95PL 1 //ECAN0INTA(ECAN-A)
6、 #define G96PL 2 //ECAN1INTA(ECAN-A) #define G97PL 0 //reserved #define G98PL 0 //reserved4.由上可知所有组里第9组优先级最高,第9组中ECAN0INTA(G95PL)优先级最高。优先级设置好后到DSP281x_SWPrioritizedDefaultIsr.c 文件中找到相应的函数。我这里就拿ECAN0INTA(ECAN-A)来作为例子说明;这个中断对应的函数为(DSP281x_SWPrioriti
7、zedDefaultIsr.c文件里可以找到)如下://---------------------------------------------------------------------------//eCAN-ADefaultISRs:////ConnectedtoPIEIER9_5(useMINT9andMG95masks):#if(G95PL!=0)interruptvoidECAN0INTA_ISR(void) //eCAN-A{ //Setinterruptpriority: volatileUint16TempPIEIER=Pi
8、eCtrlRegs.PI
此文档下载收益归作者所有