[elektro] C30 dspic CAN library ...kicsit nem értem

Ferenc Toth toferi2 at freemail.hu
Sat Feb 5 15:13:12 CET 2011


Sziasztok .
A gondom az ,hogy nem értem miért történik az ,hogy ha a C30 periph.library Can1SendMesseage() ét használom nem azt csinálja amit én szeretnék.Ha a helpben lévő példát írom a kontrollerbe akkor a kiadott üzenet ID-je 1E003038 és nem értem ez hogy jön neki ki.Ha standard IDt próbálok adni az jól működik ,de az EID az sehogy sem jön össze.Valaki foglalkozott már ezzel?
Itt a help:

3.10     CANxSendMessage
      Function Prototype
     void CAN1SendMessage(unsigned int sid,

         unsigned long eid, unsigned char *data,

         unsigned char datalen, char MsgFlag);

      void CAN2SendMessage(unsigned int sid,

         unsigned long eid, unsigned char *data,

         unsigned char datalen, char MsgFlag);
     
      Include
     can.h
     
      Description
     This function writes data to be transmitted to TX registers, sets the data length and initiates the transmission.
     
      Arguments
     sid - The 16-bit value to be written into CiTXnSID registers CAN_TX_SID(x), where x is the required SID value.

      Substitute Remote Transmission Request

         CAN_SUB_REM_TX_REQ

         CAN_SUB_NOR_TX_REQ

      Message ID Type

         CAN_TX_EID_EN

         CAN_TX_EID_DIS



      eid - The 32-bit value to be written into CiTXnEID and CiTXnDLC registers CAN_TX_EID(x), where x is the required EID value.

      Remote Transmission Request

         CAN_REM_TX_REQ

         CAN_NOR_TX_REQ



      data - The pointer to the location where data to be transmitted is stored.



      datalen - The number of bytes of data to be transmitted.



      MsgFlag - The buffer number ('0', '1' or '2') from where data is transmitted.

      If '1', the data is written into CiTX1B1 to CiTX1B4.

      If '2', the data is written into CiTX2B1 to CiTX2B4.

      If '0' or otherwise, the data is written into CiTX0B1 to CiTX0B4.
     
      Return Value
     None.
     
      Remarks:
     This function writes the identifier values into SID and EID registers, data to be transmitted into TX register, sets the data length and initiates transmission by setting TXREQ bit.
     
      Source File:
     CAN1SendMessage.c

      CAN2SendMessage.c
     
      Code Example
     CAN1SendMessage((CAN_TX_SID(1920)) &

      (CAN_TX_EID_EN) & (CAN_SUB_NOR_TX_REQ),

      (CAN_TX_EID(12344)) & (CAN_NOR_TX_REQ),

      Txdata, datalen, tx_rx_no);
     

  


More information about the Elektro mailing list