diff --git a/AMS_Master_Code/Core/Inc/slave_monitoring.h b/AMS_Master_Code/Core/Inc/slave_monitoring.h index 37985a4..1ec85fb 100644 --- a/AMS_Master_Code/Core/Inc/slave_monitoring.h +++ b/AMS_Master_Code/Core/Inc/slave_monitoring.h @@ -2,6 +2,7 @@ #define INC_SLAVE_MONITORING_H #include +#include "stm32h7xx_hal.h" #define N_SLAVES 7 #define N_CELLS_SERIES 15 @@ -57,7 +58,7 @@ extern SlaveHandle slaves[N_SLAVES]; extern uint16_t min_voltage; extern int16_t max_temp; -void slaves_init(); +void slaves_init(SPI_HandleTypeDef *hspi); void slaves_check(); void slaves_handle_panic(const uint8_t *data); diff --git a/AMS_Master_Code/Core/Src/main.c b/AMS_Master_Code/Core/Src/main.c index f5db021..c2b6dfd 100644 --- a/AMS_Master_Code/Core/Src/main.c +++ b/AMS_Master_Code/Core/Src/main.c @@ -163,7 +163,7 @@ int main(void) MX_ADC2_Init(); /* USER CODE BEGIN 2 */ can_init(&hfdcan1); - slaves_init(); + slaves_init(&hspi1); shunt_init(); ts_sm_init(); soc_init(); diff --git a/AMS_Master_Code/Core/Src/slave_monitoring.c b/AMS_Master_Code/Core/Src/slave_monitoring.c index d30f84c..7263001 100644 --- a/AMS_Master_Code/Core/Src/slave_monitoring.c +++ b/AMS_Master_Code/Core/Src/slave_monitoring.c @@ -1,5 +1,6 @@ #include "slave_monitoring.h" +#include "AMS_HighLevel.h" #include "can.h" #include "main.h" #include "ts_state_machine.h" @@ -34,7 +35,7 @@ static size_t get_slave_index(uint8_t slave_id) { return slave_id_to_index[slave_id]; } -void slaves_init() { +void slaves_init(SPI_HandleTypeDef *hspi) { memset(slave_id_to_index, 0xFF, sizeof(slave_id_to_index)); for (int i = 0; i < N_SLAVES; i++) { slaves[i].id = 0xFF; @@ -45,6 +46,8 @@ void slaves_init() { slaves[i].max_temp = 0; } + AMS_Init(hspi); + //HAL_GPIO_WritePin(SLAVE_POWER_0_GPIO_Port, SLAVE_POWER_0_Pin, GPIO_PIN_SET); //HAL_GPIO_WritePin(SLAVE_POWER_1_GPIO_Port, SLAVE_POWER_1_Pin, GPIO_PIN_SET); //HAL_GPIO_WritePin(SLAVE_POWER_DSEL_GPIO_Port, SLAVE_POWER_DSEL_Pin, @@ -58,6 +61,10 @@ void slaves_check() { int any_slave_error = 0; TSErrorKind slave_error = TS_ERRORKIND_NONE; + AMS_Idle_Loop(); + + //TODO: rewrite to use data from BMS driver + uint32_t now = HAL_GetTick(); uint16_t min_voltage_new = 0xFFFF; int16_t max_temp_new = 0xFFFF;