This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335中断



28335的中断服务函数地址,在初始化完成之后,还是否可以修改?如

初始化时

EALLOW;
PieVectTable.EPWM1_INT = &Calc_isr;
EDIS;

运行一段时间之后,修改为

EALLOW;
PieVectTable.EPWM1_INT = &Pwm_isr;
EDIS;

如果可以,这样写的缺点是什么,谢谢!

  • 为了能够对这些特殊寄存器进行初始化,所以在对上述特殊寄存器进行改写之前,一定要执行汇编指令asm(“EALLOW”)或者宏定义EALLOW来设置状态寄存器可写,在设置完寄存器之后,一定要注意执行汇编指令asm(“EDIS”)或者宏定义EDIS来清除状态寄存器的可写态。

    所以这个这样的操作在编写时当然是可行的。但是实际上,一旦你要重新配置,那么应该保证设备处于一种初始态“如刚上电的状态”,确保中断不被执行。

  • 可以的,一般初始化时采集采样通道偏差值就是这么处理的。最后一次执行初始化中断中修改就可以了。