This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

message object 15 can only received basic ID or Exter ID ??

From the ap162101 "The internal structure of message object 15 has been adapted to provide a BASIC-CAN feature. In this mode, all incoming messages with identifiers, which are not matching to other message objects,can be stored in object 15. If no other objects have been activated, all messages can be treated by message object 15. The CPU has to check whether an incoming message addresses the controller
(acceptance filtering) or should be ignored. As a consequence, the required CPU time to deal with
incoming data increases, but all messages (data or remote frames, standard or extended dentifiers) can be handled"
I know the mo 15 can recieived the bsic 11 bits ID and exter 29 ID, however, my code genernate by DavE:
CAN2_OBJ[14].MCR = 0x5599; // set CAN1 message control register

/// - message direction is receive /// - extended 29-bit identifier

C2UMLM = 0x00; // set CAN1 upper mask of last message
C2LMLM = 0x00;// set CAN1 lower mask of last message
CAN2_OBJ[14].MCFG = 0x00;
CAN2_OBJ[14].UAR = 0x0000; // set CAN1 upper arbitration register
CAN2_OBJ[14].LAR = 0x0000; // set CAN1 lower arbitration register
Can only receive shor ID ingroe long id? why?
can i use mo 15 to received and can data ,then use interrupt to handle all of them ?
thanks a lot

Parents
  • I uss send a 0x12 as a flag to show the mo 15 to received a can data...

    void CAN1_viCAN1(void) interrupt 0x40
    { uword uwIntID,test; while (uwIntID = C1IR & 0x00ff) { switch (uwIntID & 0x00ff) { case 2: // Message Object 15 Interrupt S0TBUF=0x12; ..........

Reply
  • I uss send a 0x12 as a flag to show the mo 15 to received a can data...

    void CAN1_viCAN1(void) interrupt 0x40
    { uword uwIntID,test; while (uwIntID = C1IR & 0x00ff) { switch (uwIntID & 0x00ff) { case 2: // Message Object 15 Interrupt S0TBUF=0x12; ..........

Children
No data