/* * can.c * * Created on: Jun 12, 2025 * Author: janek */ #include "can.h" rx_acc acc_status = {}; extern int ts_on; extern int ams_last_tick; extern int r2d_progress; dash_tx_t dash_tx; void can_init(CAN_HandleTypeDef* hcan){ ftcan_init(hcan); ftcan_add_filter(0x00, 0x00); // no filter } void can_send(){ uint8_t data[1]; data[0] = dash_tx.dash_send; ftcan_transmit(CAN_ID_TX, data, 1); } void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t* data){ if(id == CAN_ID_RX_AMS){ ams_last_tick = HAL_GetTick(); acc_status.ams_status.ams_rx = data[0]; acc_status.led_status.ams_led = data[7]; } if(id == CAN_ID_RX_R2D){ r2d_progress = data[1] & 0x0F; } }