现象:通过不同的ID发送到邮箱2、12和24,接着对应的RMP位被置位,然后去清除某一RMP时,其他的RMP也被清除了。
问题:清除某一RPM,其余的RMP也被清除,这是什么原因?DSP数据手册没有说明啊,你们有没有遇到过?
Uint32 test_CanRec1=0,test_CanRec2=0;
Uint16 test_CanRec3=0,test_CanRec4=0;
#pragma CODE_SECTION(CAN_Receiv_EventManager, "ramfuncs");
void CAN_Receiv_EventManager(void){
if(Par_uCAN_OPrater_EN == 1 && Par_FieldBusType == 3){
test_CanRec2 = ECanbRegs.CANRMP.all;
if(test_CanRec4 & 0x0001){
if(ECanbRegs.CANRMP.bit.RMP24 == 1){ //
ECanbRegs.CANRMP.bit.RMP24 = 1;
}
}
if(test_CanRec4 & 0x0004){
if(ECanbRegs.CANRMP.bit.RMP2 == 1){ //
ECanbRegs.CANRMP.bit.RMP2 = 1;
}
}
test_CanRec1 = ECanbRegs.CANRMP.all;
if(test_CanRec4 & 0x0002){
if(ECanbRegs.CANRMP.bit.RMP12 == 1){
ECanbRegs.CANRMP.bit.RMP12 = 1;
}
}
test_CanRec3 = (Uint16)(ECanbRegs.CANRMP.all >>10);
}
}
|