29 lines
785 B
C
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];
|
|
}
|
|
}
|
|
}
|
|
} |