event fixes
This commit is contained in:
parent
da5118c73b
commit
bf79b35967
@ -23,7 +23,6 @@
|
|||||||
void ams_can_init(CAN_HandleTypeDef* ams, CAN_HandleTypeDef* car);
|
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_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();
|
void ams_can_send_heartbeat();
|
||||||
/**
|
/**
|
||||||
|
@ -19,35 +19,17 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
static CAN_HandleTypeDef* handle_ams;
|
static CAN_HandleTypeDef* handle_ams;
|
||||||
static CAN_HandleTypeDef* handle_car;
|
|
||||||
|
|
||||||
void ams_can_init(CAN_HandleTypeDef* ams_handle,
|
void ams_can_init(CAN_HandleTypeDef* ams_handle,
|
||||||
CAN_HandleTypeDef* car_handle) {
|
CAN_HandleTypeDef* car_handle) {
|
||||||
handle_ams = ams_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
|
// Start peripheral
|
||||||
|
if (HAL_CAN_Start(handle_ams) != HAL_OK) {
|
||||||
|
handle_ams = car_handle;
|
||||||
if (HAL_CAN_Start(handle_ams) != HAL_OK) {
|
if (HAL_CAN_Start(handle_ams) != HAL_OK) {
|
||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
if (HAL_CAN_Start(handle_car) != HAL_OK) {
|
|
||||||
Error_Handler();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Activate RX notifications
|
// Activate RX notifications
|
||||||
@ -55,11 +37,6 @@ void ams_can_init(CAN_HandleTypeDef* ams_handle,
|
|||||||
HAL_OK) {
|
HAL_OK) {
|
||||||
Error_Handler();
|
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;
|
static int cb_triggered = 0;
|
||||||
@ -75,8 +52,6 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef* handle) {
|
|||||||
|
|
||||||
if (handle == handle_ams) {
|
if (handle == handle_ams) {
|
||||||
ams_can_handle_ams_msg(&header, data);
|
ams_can_handle_ams_msg(&header, data);
|
||||||
} else if (handle == handle_car) {
|
|
||||||
ams_can_handle_car_msg(&header, data);
|
|
||||||
} else {
|
} else {
|
||||||
Error_Handler();
|
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_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() {
|
void ams_can_send_heartbeat() {
|
||||||
static CAN_TxHeaderTypeDef header;
|
static CAN_TxHeaderTypeDef header;
|
||||||
static uint8_t data[8];
|
static uint8_t data[8];
|
||||||
|
@ -108,7 +108,7 @@ void check_error_conditions() {
|
|||||||
error = 1;
|
error = 1;
|
||||||
}
|
}
|
||||||
tmp144_check_timeouts();
|
tmp144_check_timeouts();
|
||||||
if (tmp144_bus_busbar.state == TMP144_ERROR ||
|
if (tmp144_bus_busbar.state == TMP144_ERROR &&
|
||||||
tmp144_bus_other.state == TMP144_ERROR) {
|
tmp144_bus_other.state == TMP144_ERROR) {
|
||||||
ams_can_send_error(AMS_ERROR_TMP144, AMS_ERROR_TX_TIMEOUT);
|
ams_can_send_error(AMS_ERROR_TMP144, AMS_ERROR_TX_TIMEOUT);
|
||||||
error = 1;
|
error = 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user