Part Number:TMS320F28335
首先说明下我的程序架构:
1、我需要使用定时器0中断(INT1.7)和EPWM1_INT(INT3.1)两个中断
2、我打算使用软件修改定时器0中断(INT1.7)的中断优先级,使定时器0中断(INT1.7)的优先级低于EPWM1_INT(INT3.1)中断。
所以进行了以下设置:
1、在原有的工程里添加了DSP2833x_SWPrioritizedIsrLevels.h这个头文件;
2、在工程中添加了DSP2833x_SWPrioritizedDefaultIsr.c和DSP2833x_SWPrioritizedPieVect.c两个文件;
3、在工程中去掉了原有的DSP2833x_DefaultIsr.c和DSP2833x_PieVect.c两个文件
4、在DSP2833x_SWPrioritizedIsrLevels.h的修改如下图,将INT3PL的优先级设置为1,NT1PL的优先级设置为4,目的是使PWM中断的优先级高于定时器0中断
完成以上修改后,我在定时器中断函数里加入一个死循环,来验证定时器中断的优先级有没有被降低,但是程序一直停留在定时中断的死循环中,所以定时器中断的优先级应该是没有被降低,我想问下是我哪里设置错误了?还是缺少一些设置?
Green Deng:
其实问题不是你哪里设置错误或者缺少设置,而是C2000芯片不支持修改中断优先级。中断优先级是固定的,如果要“修改”中断优先级,只能通过中断嵌套的方式去更改中断响应规则。
software-dl.ti.com/…/index.html