Part Number:TMS320F28062F
我想同时使用CAN和ADC中断,根据手册CAN中断位于第9组PIE,即INT9.5,电机控制例程的ADC中断位于10组,即INT10.1,这样的话CAN中断会打断ADC中断的执行,影响控制效果,我现在把ADC中断修改为INT1.1,发现还是有先CAN中断执行,请问一下可能是哪里的问题?
interrupt void WL_CAN_RX_ISR(void) {//HAL_acqEcanInt(halHandle);WEILANCANRx();HAL_acqEcanInt(halHandle); } //CAN接收函数 static inline void HAL_acqEcanInt(HAL_Handle handle) {HAL_Obj *obj = (HAL_Obj *)handle;Ecan_clearIntFlag(obj->canHandle);PIE_clearInt(obj->pieHandle,PIE_GroupNumber_9); } static inline void Ecan_clearIntFlag(CAN_Handle canHandle) {CAN_Obj *can = (CAN_Obj *)canHandle;// clear the bitcan->ECanaRegs.CANRMP.all = 0xFFFFFFFF;return; } // end of ADC_clearIntFlag() function
Ben Qin:
你好,我查看下相关资料后回复您。
,
Ben Qin:
你好,已经在执行的中断服务函数是不会被打断的(除非是有中断嵌套)
,
?? ?:
您好,非常感谢,如果中断嵌套的话,是需要把CAN中断函数放到ADC中断里面,还是把ADC中断放在CAN中断里面,我是想要ADC中断的优先级高
,
Ben Qin:
把ADC的中断放在CAN中断里面,这样CAN中断服务函数就可以被ADC中断给打断。
,
?? ?:
好的,非常感谢!
,
Ben Qin:
客气了