Initial commit
This commit is contained in:
81
Core/Src/BatteryManagement.c
Normal file
81
Core/Src/BatteryManagement.c
Normal file
@ -0,0 +1,81 @@
|
||||
/*
|
||||
* BatteryManagement.c
|
||||
*
|
||||
* Created on: 29.01.2022
|
||||
* Author: max
|
||||
*/
|
||||
|
||||
#include "BatteryManagement.h"
|
||||
#include "BQ_Abstraction_Layer.h"
|
||||
|
||||
extern uint16_t cell_voltages[NUMOFCELLS];
|
||||
|
||||
void ams_init(UART_HandleTypeDef* uarthandle, DMA_HandleTypeDef* uartdma)
|
||||
{
|
||||
afe_init(uarthandle);
|
||||
}
|
||||
|
||||
void ams_loop_discharging()
|
||||
{
|
||||
afe_measure();
|
||||
|
||||
if(bq_status == BQ_ERROR)
|
||||
{
|
||||
ams_status = AMS_TIMEOUT_ERROR;
|
||||
}
|
||||
else
|
||||
{
|
||||
ams_check_cell_voltages();
|
||||
}
|
||||
}
|
||||
|
||||
void ams_loop_charging()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ams_check_cell_voltages()
|
||||
{
|
||||
modulesumvoltage = 0;
|
||||
highestcell = 0;
|
||||
lowestcell = 0;
|
||||
uint16_t lowestvoltage = cell_voltages[0];
|
||||
uint16_t highestvoltage = cell_voltages[0];
|
||||
|
||||
for(int n = 0; n < NUMOFCELLS; n++)
|
||||
{
|
||||
modulesumvoltage += cell_voltages[n];
|
||||
|
||||
if(cell_voltages[n] > highestvoltage)
|
||||
highestvoltage = cell_voltages[n];
|
||||
|
||||
if(cell_voltages[n] < lowestvoltage)
|
||||
lowestvoltage = cell_voltages[n];
|
||||
|
||||
if(cell_voltages[n] > OVERVOLTAGE_LIMIT)
|
||||
ams_status = AMS_OV_ERROR;
|
||||
|
||||
if(cell_voltages[n] < UNDERVOLTAGE_LIMIT)
|
||||
ams_status = AMS_UV_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
void ams_check_cell_temperaures()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ams_step_soc_model()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ams_step_balancing_model()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ams_fan_control()
|
||||
{
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user