CAN example for SAM.
Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
#include "asf.h"
Macros | |
#define | CAN_COMM_RXMB_ID 0 |
#define | CAN_COMM_TXMB_ID 1 |
#define | CAN_MSG_DUMMY_DATA 0x55AAAA55u |
#define | CAN_TRANSFER_ID 7 |
#define | CAN_TX_PRIO 15 |
#define | MAX_CAN_FRAME_DATA_LEN 8 |
CAN frame max data length. More... | |
#define | STRING_EOL "\r" |
#define | STRING_HEADER |
Functions | |
void | CAN1_Handler (void) |
Default interrupt handler for CAN 1. More... | |
static void | configure_console (void) |
Configure UART for debug message output. More... | |
static void | decode_can_msg (can_mb_conf_t *p_mailbox) |
Decode CAN messages. More... | |
int | main (void) |
can_example application entry point. More... | |
static void | reset_mailbox_conf (can_mb_conf_t *p_mailbox) |
Reset mailbox configure structure. More... | |
Variables | |
volatile uint32_t | g_ul_recv_status = 0 |
Receive status. More... | |
can_mb_conf_t | rx_mailbox |
can_mb_conf_t | tx_mailbox |
Transfer mailbox structure. More... | |
#define CAN_COMM_RXMB_ID 0 |
Referenced by main().
#define CAN_COMM_TXMB_ID 1 |
Referenced by main().
#define CAN_MSG_DUMMY_DATA 0x55AAAA55u |
Referenced by decode_can_msg(), and main().
#define CAN_TRANSFER_ID 7 |
Referenced by main().
#define CAN_TX_PRIO 15 |
Referenced by main().
#define MAX_CAN_FRAME_DATA_LEN 8 |
CAN frame max data length.
Referenced by main().
#define STRING_EOL "\r" |
Referenced by main().
#define STRING_HEADER |
Referenced by main().
void CAN1_Handler | ( | void | ) |
Default interrupt handler for CAN 1.
References can_mailbox_get_status(), can_mailbox_read(), g_ul_recv_status, and can_mb_conf_t::ul_status.
|
static |
Configure UART for debug message output.
References uart_rs232_options::baudrate, stdio_serial_init(), and sysclk_enable_peripheral_clock().
Referenced by main().
|
static |
Decode CAN messages.
p_mailbox | Pointer to CAN Mailbox structure. |
References CAN_MSG_DUMMY_DATA, can_mb_conf_t::ul_datah, and can_mb_conf_t::ul_datal.
Referenced by main().
int main | ( | void | ) |
can_example application entry point.
References board_init(), CAN_BPS_1000K, CAN_COMM_RXMB_ID, CAN_COMM_TXMB_ID, CAN_DISABLE_ALL_INTERRUPT_MASK, can_disable_interrupt(), can_enable_interrupt(), can_get_status(), can_global_send_transfer_cmd(), can_init(), can_mailbox_init(), can_mailbox_write(), CAN_MB_RX_MODE, CAN_MB_TX_MODE, CAN_MSG_DUMMY_DATA, can_reset_all_mailbox(), CAN_TRANSFER_ID, CAN_TX_PRIO, cnt, configure_console(), decode_can_msg(), g_ul_recv_status, MAX_CAN_FRAME_DATA_LEN, pmc_enable_periph_clk(), reset_mailbox_conf(), STRING_EOL, STRING_HEADER, sysclk_get_cpu_hz(), sysclk_init(), can_mb_conf_t::uc_id_ver, can_mb_conf_t::uc_length, can_mb_conf_t::uc_obj_type, can_mb_conf_t::uc_tx_prio, can_mb_conf_t::ul_datah, can_mb_conf_t::ul_datal, can_mb_conf_t::ul_id, can_mb_conf_t::ul_id_msk, and can_mb_conf_t::ul_mb_idx.
|
static |
Reset mailbox configure structure.
p_mailbox | Pointer to mailbox configure structure. |
References can_mb_conf_t::uc_id_ver, can_mb_conf_t::uc_length, can_mb_conf_t::uc_obj_type, can_mb_conf_t::uc_tx_prio, can_mb_conf_t::ul_datah, can_mb_conf_t::ul_datal, can_mb_conf_t::ul_fid, can_mb_conf_t::ul_id, can_mb_conf_t::ul_id_msk, can_mb_conf_t::ul_mb_idx, and can_mb_conf_t::ul_status.
Referenced by main().
volatile uint32_t g_ul_recv_status = 0 |
Receive status.
can_mb_conf_t rx_mailbox |
can_mb_conf_t tx_mailbox |
Transfer mailbox structure.