User manual
298
mikoC PRO for dsPIC
MikroElektronika
CANSPIWrite
Prototype
unsigned short CANSPIWrite(long id, unsigned short *data, unsigned short
datalen, unsigned short CANSPI_TX_MSG_FLAGS);
Description If at least one empty Transmit Buffer is found, the function sends message in the queue for
transmission.
Parameters - id: CAN message identier. Valid values: 11 or 29 bit values, depending on message type (standard
or extended)
- Data: data to be sent
- DataLen: data length. Valid values: 0..8
- CANSPI_TX_MSG_FLAGS: message ags. Valid values: CANSPI_TX_MSG_FLAGS constants. See
CANSPI_TX_MSG_FLAGS constants.
Returns - 0 if all Transmit Buffers are busy
- 0xFFFF if at least one Transmit Buffer is available
Requires The CANSPI module must be in mode in which transmission is possible. See
CANSPISetOperationMode.
The CANSPI routines are supported only by MCUs with the SPI module.
MCU has to be properly connected to mikroElektronika’s CANSPI Extra Board or similar hardware.
See connection example at the bottom of this page.
Example
// send message extended CAN message with the appropriate ID and data
unsigned short tx_ags;
char data[8];
long msg_id;
...
CANSPISetOperationMode(CANSPI_MODE_NORMAL,0xFF); // set
NORMAL mode (CANSPI must be in mode in which transmission is possible)
tx_ags = _CANSPI_TX_PRIORITY_0 & _CANSPI_TX_XTD_FRAME; // set message
ags
CANSPIWrite(msg_id, data, 2, tx_ags);
Notes None.
CANSPI Constants
There is a number of constants predened in the CANSPI library. You need to be familiar with them in order to be able
to use the library effectively. Check the example at the end of the chapter.
CANSPI_OP_MODE Constants
The CANSPI_OP_MODE constants dene CANSPI operation mode. Function CANSPISetOperationMode expects
one of these as it's argument: