Mikroelektronika MIKROE-724 データシート
270
mikoBasic PRO for dsPIC30/33 and PIC24
MikroElektronika
CANSPIRead
Prototype
sub function CANSPIRead(dim byref id as longint, dim byref Data_ as byte[8],
dim byref DataLen as byte, dim byref CAN_RX_MSG_FLAGS as byte) as byte
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
data
parameter
- Message length is retrieved and stored to location provided by the
dataLen
parameter
- Message flags are retrieved and stored to location provided by the
CANSPI_RX_MSG_FLAGS
parameter
Parameters -
id
: message identifier address
-
data
: an array of bytes up to 8 bytes in length
-
dataLen
: data length address
-
CANSPI_RX_MSG_FLAGS
: message flags address. For message receive flags format refer to
CANSPI_RX_MSG_FLAGS
constants. See CANSPI_RX_MSG_FLAGS constants.
Returns
-
0
if nothing is received
-
0xFFFF
if one of the Receive Buffers is full (message received)
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 CANSPI1 module for received messages. If any was received do
something.
dim msg_rcvd, rx_flags, data_len as byte
data as byte[8]
msg_id as longint
...
CANSPISetOperationMode(_CANSPI_MODE_NORMAL,0xFF) ‘ set NORMAL mode (CANSPI1
module must be in mode in which receive is possible)
...
rx_flags = 0 ‘ clear message flags
if (msg_rcvd = CANSPIRead(msg_id, data, data_len, rx_flags)) then
...
end if
Notes
None.