Mikroelektronika MIKROE-742 데이터 시트

다운로드
페이지 532
CANSPIWrite
CANSPI Constants
There is a number of constants predefined 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.
195
MIKROELEKTRONIKA
- SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Libraries
mikroPASCAL PRO for AVR
CHAPTER 6
Prototype
function CANSPIWrite(id: longint; var wr_data: array[8] of byte;
data_len: byte; CAN_TX_MSG_FLAGS: byte): byte;
Returns
0
if all Transmit Buffers are busy 
0xFF
if at least one Transmit Buffer is available 
Description
If at least one empty Transmit Buffer is found, the function sends message in
the queue for transmission.
Parameters:
id
:CAN message identifier. Valid values: 11 or 29 bit values, depending on 
message type (standard or extended) 
wr_data
: data to be sent (an array of bytes up to 8 bytes in length) 
data_len
: data length. Valid values: 1 to 8 
CAN_RX_MSG_FLAGS
: message flags 
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
var tx_flags: byte;
rd_data: 
array[8] of byte;
msg_id: longint;
...
CANSPISetOperationMode(CAN_MODE_NORMAL, 0xFF);
// set NORMAL mode (CANSPI must be in mode in which transmission
is possible)
tx_flags := CANSPI_TX_PRIORITY_0 
ands CANSPI_TX_XTD_FRAME;
// set message flags
CANSPIWrite(msg_id, rd_data, 2, tx_flags);