void CAN_rx(uint8_t msg_obj_num){ /* Determine which CAN message has been received */ msg_obj.msgobj = msg_obj_num; /* Now load up the msg_obj structure with the CAN message */ ([COLOR=Red]*rom)->pCAND->can_receive(&msg_obj); UARTSend(msg_obj.data,8 ); [/COLOR] if (msg_obj_num == 1) { /* Simply transmit CAN frame (echo) with with ID +0x100 via buffer 2 */ msg_obj.msgobj = 2; msg_obj.mode_id += 0x100; (*rom)->pCAND->can_transmit(&msg_obj); } return; } ........................ msg_obj.msgobj = 5; msg_obj.mode_id = 0x0; msg_obj.mask = 0x0; (*rom)->pCAND->config_rxmsgobj(&msg_obj); |
//can speed #define BPS83 0x00006F57UL // CAN_BTR 83kHz #define BPS100 0x00002F57UL // CAN_BTR 100kHz #define BPS125 0x00001C57UL // CAN_BTR 125kHz #define BPS250 0x00001457UL // CAN_BTR 250kHz #define BPS500 0x00000157UL // CAN_BTR 500kHz #define BPS1000 0x0000014BUL // CAN_BTR 1000kHz |
// Initialize CAN Controller @12MHz uint32_t ClkInitTable[2] = { 0x00000000UL, // CANCLKDIV: /1 = 12MHz 0x1201UL // CAN_BTR: 1000khz }; |