Home arrow Support arrow Forums

Luminary Micro Forums

tim124

Expert Boarder

2008/08/13 13:04

CAN message filters

I have the CAN controller working and im recieving massages. however they appear to only be picked up by one message filter. The idea was to set up two filters to read the two ID's i am expecting.

setup as follows:

Code:

  // RPM + TPOS g_MsgObjectRx1.ulMsgID 0x100; g_MsgObjectRx1.ulMsgIDMask 0; g_MsgObjectRx1.ulFlags MSG_OBJ_RX_INT_ENABLE MSG_OBJ_USE_ID_FILTER; g_MsgObjectRx1.ulMsgLen 8; g_MsgObjectRx1.pucMsgData = (unsigned char *)0xffffffff; CANMessageSet(CAN0_BASEMSGOBJ_NUM_DATA_RX1, &g_MsgObjectRx1MSG_OBJ_TYPE_RX); // PRES + TEMPS g_MsgObjectRx2.ulMsgID 0x101; g_MsgObjectRx2.ulMsgIDMask 0; g_MsgObjectRx2.ulFlags MSG_OBJ_RX_INT_ENABLE MSG_OBJ_USE_ID_FILTER; g_MsgObjectRx2.ulMsgLen 8; g_MsgObjectRx2.pucMsgData = (unsigned char *)0xffffffff; CANMessageSet(CAN0_BASEMSGOBJ_NUM_DATA_RX2, &g_MsgObjectRx2MSG_OBJ_TYPE_RX);



then in my ISR i am checking which one caused the interrupt:


Code:

      ulStatus CANIntStatus(CAN0_BASECAN_INT_STS_CAUSE);     // clear inturrupts     switch(ulStatus)     {     case MSGOBJ_NUM_DATA_RX2:         g_MsgObjectRx1.pucMsgData g_101;         g_MsgObjectRx1.ulMsgLen 8;         CANMessageGet(CAN0_BASEMSGOBJ_NUM_DATA_RX2, &g_MsgObjectRx21);         g_flag_101 1;         break;     case MSGOBJ_NUM_DATA_RX1:         g_MsgObjectRx1.pucMsgData g_100;         g_MsgObjectRx1.ulMsgLen 8;         CANMessageGet(CAN0_BASEMSGOBJ_NUM_DATA_RX1, &g_MsgObjectRx11);         g_flag_100 1;         break;



unfortunatly, g_flag_101 never gets set.

AND

if i read the messages that cause the g_flag_100 flag, it contains messages with varying ID's.

any ideas?

Tim

login or register to reply

      Topics Author Date
    thread link
CAN message filters
tim124 2008/08/13 13:04
    thread link
thread linkthread link Re:CAN message filters
ddelevski 2008/08/17 22:10
    thread link
thread linkthread linkthread link Re:CAN message filters
tim124 2008/08/18 02:48