Datasheet
' CANSPI module connections
dim CanSpi_CS as sbit at PORTB.B0
CanSpi_CS_Direction as sbit at DDRB.B0
CanSpi_Rst as sbit at PORTB.B2
CanSpi_Rst_Direction as sbit at DDRB.B2
' End CANSPI module connections
main:
PORTC = 0 ' clear PORTC
DDRC = 255 ' set PORTC as output
Can_Init_Flags = 0 '
Can_Send_Flags = 0 ' clear flags
Can_Rcv_Flags = 0 '
Can_Send_Flags = _CANSPI_TX_PRIORITY_0 and ' form value to be used
_CANSPI_TX_XTD_FRAME and ' with CANSPIWrite
_CANSPI_TX_NO_RTR_FRAME
Can_Init_Flags = _CANSPI_CONFIG_SAMPLE_THRICE and ' Form value
to be used
_CANSPI_CONFIG_PHSEG2_PRG_ON and '
with CANSPIInit
_CANSPI_CONFIG_XTD_MSG and
_CANSPI_CONFIG_DBL_BUFFER_ON and
_CANSPI_CONFIG_VALID_XTD_MSG and
_CANSPI_CONFIG_LINE_FILTER_OFF
SPI1_Init() '
initialize SPI1 module
Spi_Rd_Ptr = @SPI1_Read
' Pass pointer to SPI Read sub function of used SPI module
CANSPIInitialize(1,3,3,3,1,Can_Init_Flags)
' initialize external CANSPI module
CANSPISetOperationMode(_CANSPI_MODE_CONFIG,0xFF)
' set CONFIGURATION mode
CANSPISetMask(_CANSPI_MASK_B1,-1,_CANSPI_CONFIG_XTD_MSG)
' set all mask1 bits to ones
CANSPISetMask(_CANSPI_MASK_B2,-1,_CANSPI_CONFIG_XTD_MSG)
' set all mask2 bits to ones
CANSPISetFilter(_CANSPI_FILTER_B2_F3,12111,_CANSPI_CONFIG_XTD_MSG)
' set id of filter B1_F1 to 3
CANSPISetOperationMode(_CANSPI_MODE_NORMAL,0xFF)
' set NORMAL mode
Tx_ID = 3 ' set tx ID
187
MIKROELEKTRONIKA - SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Libraries
mikroBasic PRO for AVR
CHAPTER 6