void shackbus_init(void) { // Initialize MCP2515 can_init(BITRATE_125_KBPS); #ifdef UART_DEBUG uart_write("can_init(BITRATE_125_KBPS);"); #endif // Load filters and masks can_static_filter(can_filter); #ifdef UART_DEBUG uart_write("can_static_filter(can_filter);"); #endif fifo_init (&can_outfifo, can_outbuf, 10); framestorage_init(); // Create a test messsage send_msg_blink_ret.id = ((3L<<26)+(4L<<22)+(6L<<14)+(5L<<6)+11L); //Absender = 2 Empfänger = 1 send_msg_blink_ret.flags.rtr = 0; send_msg_blink_ret.flags.extended = 1; send_msg_blink_ret.length = 3; send_msg_blink_ret.data[0] = 0; send_msg_blink_ret.data[1] = 0; send_msg_blink_ret.data[2] = 0; shackbus_startup_message(); }
/** * @brief Configura a CAN */ void canSetup(void) { // Initialize MCP2515 can_init(BITRATE_125_KBPS); // Load filters and masks can_static_filter(can_filter); // Set normal mode can_set_mode(CAN_MODE); }
int main(void) { // Initialize MCP2515 can_init(BITRATE_125_KBPS); // Load filters and masks can_static_filter(can_filter); // Create a test messsage can_t msg; msg.id = 0x123456; msg.flags.rtr = 0; msg.flags.extended = 1; msg.length = 4; msg.data[0] = 0xde; msg.data[1] = 0xad; msg.data[2] = 0xbe; msg.data[3] = 0xef; // Send the message can_send_message(&msg); while (1) { // Check if a new messag was received if (can_check_message()) { can_t msg; // Try to read the message if (can_get_message(&msg)) { // If we received a message resend it with a different id msg.id += 10; // Send the new message can_send_message(&msg); } } } return 0; }