29 lines
785 B
C

#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];
}
}
}
}