Other Parts Discussed in Thread: HALCOGEN
Hello,
In my project I have a need that all the messages that interrupts my HW should be collected. For the same, I simply used the message box1 and I configured the box as this
id = 0xAB (Should not matter right?)
Mask = 0x00
Now I should get all the messages in. This is for sure happening and am getting an interrupt on any message. I am also able to get the data using canGetData but then started the issue!
How do I know which message came with this data? HOw do I get the actual message identifier and DLC? The bits 28 through 18 in the IF2->ARB always shows me 0xAB irrespective of what ID knocked the door.
From code point, this is what am trying in the notification function
void canMessageNotification(canBASE_t *node, uint32 messageBox) { if((node==canREG2) && (messageBox == 1)) // CHECK THE INTERRUPT BECAUSE OF MESSAGE OBJECT 1 { //All Rx messages are recieved in message box 1 memset(&Msg_Data[0],0,8); canGetData(canREG2, canMESSAGE_BOX1, &Msg_Data[0]); //This always works, I get the right data messageid = canREG2->IF2ARB; // I always see 0xAB bits 28 through 18 } }
How do I know the actual CAN Message identifier that came in to my HW (message box)? Please help
Regards,
Shankar