event fixes

This commit is contained in:
jazzpi 2022-07-20 12:44:20 +02:00
parent da5118c73b
commit bf79b35967
3 changed files with 5 additions and 33 deletions

View File

@ -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();
/**

View File

@ -19,35 +19,17 @@
#include <stdint.h>
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) {
handle_ams = car_handle;
if (HAL_CAN_Start(handle_ams) != HAL_OK) {
Error_Handler();
}
if (HAL_CAN_Start(handle_car) != 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];

View File

@ -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;