#include "battery.h" #include "ADBMS_Driver.h" uint16_t min_voltage = 0xFFFF; int16_t max_temp = -1; void battery_init(SPI_HandleTypeDef* hspi) { AMS_Init(hspi); } void battery_update() { if (AMS_Idle_Loop().status != ADBMS_NO_ERROR ) { // Handle error return; } for (size_t i = 0; i < N_BMS; i++) { for (size_t j = 0; j < N_CELLS; j++) { if (modules[i].cellVoltages[j] > min_voltage) { min_voltage = modules[i].cellVoltages[j]; } if (modules[i].cellTemps[0] > max_temp) { //refactor this to use ntc_mv_to_celsius // max_temp = ntc_mv_to_celsius(modules[i].auxVoltages[j]); max_temp = modules[i].cellTemps[j]; } } } }