Datasheet
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
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
PORTC = RxTx_Data[0]; // id correct, output data at PORTC
RxTx_Data[0]++ ; // increment received data
CANSPIWrite(Tx_ID, RxTx_Data, 1, Can_Send_Flags); // send incre-
mented data back
}
}
}
HW Connection
Example of interfacing CAN transceiver MCP2510 with MCU via SPI interface
250
MIKROELEKTRONIKA - SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Libraries
mikroC PRO for AVR
CHAPTER 6