diff --git a/Core/Inc/AMS_CAN.h b/Core/Inc/AMS_CAN.h index 77c9b7a..4e42aaf 100644 --- a/Core/Inc/AMS_CAN.h +++ b/Core/Inc/AMS_CAN.h @@ -23,7 +23,6 @@ void ams_can_init(CAN_HandleTypeDef* ams, CAN_HandleTypeDef* car); void ams_can_handle_ams_msg(CAN_RxHeaderTypeDef* header, uint8_t* data); -void ams_can_handle_car_msg(CAN_RxHeaderTypeDef* header, uint8_t* data); void ams_can_send_heartbeat(); /** diff --git a/Core/Src/AMS_CAN.c b/Core/Src/AMS_CAN.c index e24fcb3..1b94e20 100644 --- a/Core/Src/AMS_CAN.c +++ b/Core/Src/AMS_CAN.c @@ -19,35 +19,17 @@ #include static CAN_HandleTypeDef* handle_ams; -static CAN_HandleTypeDef* handle_car; void ams_can_init(CAN_HandleTypeDef* ams_handle, CAN_HandleTypeDef* car_handle) { handle_ams = ams_handle; - handle_car = car_handle; - - // Configure filters - CAN_FilterTypeDef filter_car; - filter_car.FilterBank = 14; - filter_car.FilterMode = CAN_FILTERMODE_IDMASK; - filter_car.FilterScale = CAN_FILTERSCALE_32BIT; - filter_car.FilterIdHigh = CAN_ID_AMS_SLAVE_HEARTBEAT_BASE >> 16; - filter_car.FilterIdLow = CAN_ID_AMS_SLAVE_HEARTBEAT_BASE & 0xFFFF; - filter_car.FilterMaskIdHigh = 0xFFFF; - filter_car.FilterMaskIdLow = 0xFF00; - filter_car.FilterFIFOAssignment = CAN_RX_FIFO0; - filter_car.FilterActivation = ENABLE; - filter_car.SlaveStartFilterBank = 14; - if (HAL_CAN_ConfigFilter(handle_car, &filter_car) != HAL_OK) { - Error_Handler(); - } // Start peripheral if (HAL_CAN_Start(handle_ams) != HAL_OK) { - Error_Handler(); - } - if (HAL_CAN_Start(handle_car) != HAL_OK) { - Error_Handler(); + handle_ams = car_handle; + if (HAL_CAN_Start(handle_ams) != HAL_OK) { + Error_Handler(); + } } // Activate RX notifications @@ -55,11 +37,6 @@ void ams_can_init(CAN_HandleTypeDef* ams_handle, HAL_OK) { Error_Handler(); } - if (HAL_CAN_ActivateNotification(handle_car, - CAN_IT_RX_FIFO0_MSG_PENDING | CAN_IT_ERROR | - CAN_IT_LAST_ERROR_CODE) != HAL_OK) { - Error_Handler(); - } } static int cb_triggered = 0; @@ -75,8 +52,6 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef* handle) { if (handle == handle_ams) { ams_can_handle_ams_msg(&header, data); - } else if (handle == handle_car) { - ams_can_handle_car_msg(&header, data); } else { Error_Handler(); } @@ -84,8 +59,6 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef* handle) { void ams_can_handle_ams_msg(CAN_RxHeaderTypeDef* header, uint8_t* data) {} -void ams_can_handle_car_msg(CAN_RxHeaderTypeDef* header, uint8_t* data) {} - void ams_can_send_heartbeat() { static CAN_TxHeaderTypeDef header; static uint8_t data[8]; diff --git a/Core/Src/main.c b/Core/Src/main.c index f48b1fe..b261eee 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -108,7 +108,7 @@ void check_error_conditions() { error = 1; } tmp144_check_timeouts(); - if (tmp144_bus_busbar.state == TMP144_ERROR || + if (tmp144_bus_busbar.state == TMP144_ERROR && tmp144_bus_other.state == TMP144_ERROR) { ams_can_send_error(AMS_ERROR_TMP144, AMS_ERROR_TX_TIMEOUT); error = 1;