User manual

304
mikoC PRO for dsPIC
MikroElektronika
_CANSPI_CONFIG_DBL_BUFFER_ON &
_CANSPI_CONFIG_VALID_XTD_MSG &
_CANSPI_CONFIG_LINE_FILTER_OFF;
SPI1_Init(); // Initialize SPI1 module
CANSPIInitialize(1,3,3,3,1,Can_Init_Flags); // Initialize 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
î‚¿lter B1_F1 to 3
CANSPISetOperationMode(_CANSPI_MODE_NORMAL,0xFF); // Set NORMAL mode
Tx_ID = 3; // Set tx ID
while (1) { // Endless loop
Msg_Rcvd = CANSPIRead(&Rx_ID , RxTx_Data , &Rx_Data_Len, &Can_Rcv_Flags); //
Receive message
if ((Rx_ID == 12111u) && Msg_Rcvd) { // If message received check id
PORTB = RxTx_Data[0]; // Id correct, output data at PORTB
RxTx_Data[0]++; // Increment received data
CANSPIWrite(Tx_ID, RxTx_Data, 1, Can_Send_Flags); // Send incremented data back
}
}
}