Mikroelektronika MIKROE-742 데이터 시트

다운로드
페이지 532
CANSPIRead
194
MIKROELEKTRONIKA
- SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Libraries
mikroPASCAL PRO for AVR
CHAPTER 6
Prototype
function CANSPIRead(var id: longint; var rd_data: array[8] of
byte; data_len: byte; 
var CAN_RX_MSG_FLAGS: byte): byte;
Returns
0
if nothing is received 
0xFF
if one of the Receive Buffers is full (message received) 
Description
If at least one full Receive Buffer is found, it will be processed in the following way: 
- Message ID is retrieved and stored to location provided by the id parameter 
- Message data is retrieved and stored to a buffer provided by the 
rd_data
parameter 
- Message length is retrieved and stored to location provided by the 
data_len
parameter 
- Message flags are retrieved and stored to location provided by the    
CAN_RX_MSG_FLAGS
parameter 
Parameters:
id
: message identifier storage address 
rd_data
: data buffer (an array of bytes up to 8 bytes in length) 
data_len
: data length storage address. 
CAN_RX_MSG_FLAGS
: message flags storage address 
Requires
The CANSPI module must be in a mode in which receiving 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
// check the CANSPI module for received messages. If any was
received do something. 
var msg_rcvd, rx_flags, data_len: byte;
rd_data: 
array[8] of byte;
msg_id: longint;
...
CANSPISetOperationMode(CANSPI_MODE_NORMAL,0xFF);
// set NORMAL mode (CANSPI module must be in mode in which
receive is possible)
...
rx_flags := 0;
// clear message flags
if (msg_rcvd = CANSPIRead(msg_id, rd_data, data_len, rx_flags) 
begin
...
end;