From afa49092080b036f1a9ae307036bf8b4994a5c85 Mon Sep 17 00:00:00 2001 From: Kilian Bracher Date: Sat, 26 Apr 2025 18:55:19 +0200 Subject: [PATCH] fix log crashes, ITEMP calculation --- .../Core/Src/ADBMS_Abstraction.c | 2 +- AMS_Master_Code/Core/Src/battery.c | 4 ++-- .../Core/Src/print_master_status.c | 20 +++++++++---------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/AMS_Master_Code/Core/Lib/ADBMS6830B_Driver/Core/Src/ADBMS_Abstraction.c b/AMS_Master_Code/Core/Lib/ADBMS6830B_Driver/Core/Src/ADBMS_Abstraction.c index 944642d..28e44df 100644 --- a/AMS_Master_Code/Core/Lib/ADBMS6830B_Driver/Core/Src/ADBMS_Abstraction.c +++ b/AMS_Master_Code/Core/Lib/ADBMS6830B_Driver/Core/Src/ADBMS_Abstraction.c @@ -147,7 +147,7 @@ HAL_StatusTypeDef amsAuxAndStatusMeasurement(Cell_Module (*module)[N_BMS]) { CHECK_RETURN(readCMD(RDSTATA, rxbuf, STATUS_GROUP_A_SIZE)); for (size_t i = 0; i < N_BMS; i++) { size_t offset = BUFFER_BMS_OFFSET(i, STATUS_GROUP_A_SIZE); - (*module)[i].internalDieTemp = (mV_from_ADBMS6830(rxbuf[offset + 2] | (rxbuf[offset + 3] << 8)) / 7.5) + 273; //datasheet page 72 + (*module)[i].internalDieTemp = (mV_from_ADBMS6830(rxbuf[offset + 2] | (rxbuf[offset + 3] << 8)) / 7.5f) - 273; //datasheet page 72 } CHECK_RETURN(readCMD(RDSTATB, rxbuf, STATUS_GROUP_B_SIZE)); diff --git a/AMS_Master_Code/Core/Src/battery.c b/AMS_Master_Code/Core/Src/battery.c index 51692cc..c6a50fe 100644 --- a/AMS_Master_Code/Core/Src/battery.c +++ b/AMS_Master_Code/Core/Src/battery.c @@ -81,7 +81,7 @@ HAL_StatusTypeDef battery_update() { for (size_t cell = 0; cell < N_CELLS; cell++) { if (voltage_flags & (1UL << cell)) { - debug_log_cont(LOG_LEVEL_ERROR, "%zu (%d mV) ", cell, modules[ret.bms_id].cellVoltages[cell]); + debug_log_cont(LOG_LEVEL_ERROR, "%u (%d mV) ", cell, modules[ret.bms_id].cellVoltages[cell]); } } @@ -159,7 +159,7 @@ HAL_StatusTypeDef battery_update() { } if (cellTemps[i][j] > (MAX_TEMP * (uint16_t)(TEMP_CONV))) { - debug_log(LOG_LEVEL_ERROR, "Cell %zu on BMS %zu overtemp: %d0 mC", j, i, cellTemps[i][j]); + debug_log(LOG_LEVEL_ERROR, "Cell %u on BMS %u overtemp: %d0 mC", j, i, cellTemps[i][j]); can_send_error(TS_ERRORKIND_CELL_OVERTEMP, i); ts_sm_set_error_source(TS_ERROR_SOURCE_SLAVES, TS_ERRORKIND_CELL_OVERTEMP, true); } else { diff --git a/AMS_Master_Code/Core/Src/print_master_status.c b/AMS_Master_Code/Core/Src/print_master_status.c index e7c4b20..077f3c0 100644 --- a/AMS_Master_Code/Core/Src/print_master_status.c +++ b/AMS_Master_Code/Core/Src/print_master_status.c @@ -62,17 +62,17 @@ void print_master_status() { #define COLOR_MIN "\033[38;5;75m" //blue for min #define COLOR_MAX "\033[38;5;203m" //red for max #define COLOR_RESET "\033[0m" - debug_log(LOG_LEVEL_INFO, " %2zu: %s%5d mV%s | %s%5d mV%s | %s%.2f mV%s | %s%3d °C%s | %s%3d °C%s", i, - (module_voltages[i].min == min_voltage) ? COLOR_MIN : "", (module_voltages[i].min), COLOR_RESET, - (module_voltages[i].max == max_voltage) ? COLOR_MAX : "", (module_voltages[i].max), COLOR_RESET, - (module_std_deviation[i] > max_std_dev) ? COLOR_MAX : "", module_std_deviation[i], COLOR_RESET, - (module_temps[i].min == min_temp) ? COLOR_MIN : "", (module_temps[i].min), COLOR_RESET, - (module_temps[i].max == max_temp) ? COLOR_MAX : "", (module_temps[i].max), COLOR_RESET); + // debug_log(LOG_LEVEL_INFO, " %2u: %s%5d mV%s | %s%5d mV%s | %s%.2f mV%s | %s%3d °C%s | %s%3d °C%s", i, + // (module_voltages[i].min == min_voltage) ? COLOR_MIN : "", (module_voltages[i].min), COLOR_RESET, + // (module_voltages[i].max == max_voltage) ? COLOR_MAX : "", (module_voltages[i].max), COLOR_RESET, + // (module_std_deviation[i] > max_std_dev) ? COLOR_MAX : "", module_std_deviation[i], COLOR_RESET, + // (module_temps[i].min == min_temp) ? COLOR_MIN : "", (module_temps[i].min), COLOR_RESET, + // (module_temps[i].max == max_temp) ? COLOR_MAX : "", (module_temps[i].max), COLOR_RESET); #else - debug_log(LOG_LEVEL_INFO, " %2zu: %5d mV | %5d mV | %.2f mV | %3d °C | %3d °C", i, - module_voltages[i].min, module_voltages[i].max, - module_std_deviation[i], - module_temps[i].min, module_temps[i].max); + // debug_log(LOG_LEVEL_INFO, " %2u: %5d mV | %5d mV | %.2f mV | %3d °C | %3d °C", i, + // module_voltages[i].min, module_voltages[i].max, + // module_std_deviation[i], + // module_temps[i].min, module_temps[i].max); #endif }