User manual

mikroBasic PRO for dsPIC30/33 and PIC24
MikroElektronika
277
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
‘ Initialize SPI1 module
SPI1_Init()
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,ID_1st,_CANSPI_CONFIG_XTD_MSG) set id of lter
B2_F3 to 1st node ID
CANSPISetOperationMode(_CANSPI_MODE_NORMAL,0xFF) ‘ set NORMAL mode
while (TRUE) ‘ endless loop
Msg_Rcvd = CANSPIRead(Rx_ID , RxTx_Data , Rx_Data_Len, Can_Rcv_Flags) receive
message
if ((Rx_ID = ID_1st) and Msg_Rcvd) then ‘ if message received check id
PORTB = RxTx_Data[0] ‘ id correct, output data at PORTB
Inc(RxTx_Data[0]) ‘ increment received data
CANSPIWrite(ID_2nd, RxTx_Data, 1, Can_Send_Flags) ‘ send incremented data back
end if
wend
end.