Fixes from review.

This commit is contained in:
mikeller 2020-03-26 01:54:42 +13:00
parent b020917c4b
commit afe704bbd9
4 changed files with 22 additions and 12 deletions

View File

@ -363,6 +363,7 @@ void mixerInitProfile(void)
#if defined(USE_BATTERY_VOLTAGE_SAG_COMPENSATION)
vbatSagCompensationFactor = 0.0f;
if (currentPidProfile->vbat_sag_compensation > 0) {
//TODO: Make this voltage user configurable
vbatFull = CELL_VOLTAGE_FULL_CV;
vbatRangeToCompensate = vbatFull - batteryConfig()->vbatwarningcellvoltage;
if (vbatRangeToCompensate >= 0) {

View File

@ -358,6 +358,8 @@ void batteryInit(void)
lowVoltageCutoff.startTime = 0;
voltageMeterReset(&voltageMeter);
voltageMeterGenericInit();
switch (batteryConfig()->voltageMeterSource) {
case VOLTAGE_METER_ESC:
#ifdef USE_ESC_SENSOR

View File

@ -89,7 +89,9 @@ void voltageMeterReset(voltageMeter_t *meter)
{
meter->displayFiltered = 0;
meter->unfiltered = 0;
#if defined(USE_BATTERY_VOLTAGE_SAG_COMPENSATION)
meter->sagFiltered = 0;
#endif
}
//
// ADC
@ -117,10 +119,10 @@ typedef struct voltageMeterADCState_s {
#endif
} voltageMeterADCState_t;
extern voltageMeterADCState_t voltageMeterADCStates[MAX_VOLTAGE_SENSOR_ADC];
voltageMeterADCState_t voltageMeterADCStates[MAX_VOLTAGE_SENSOR_ADC];
static bool sagCompensationConfigured;
voltageMeterADCState_t *getVoltageMeterADC(uint8_t index)
{
return &voltageMeterADCStates[index];
@ -208,16 +210,7 @@ void voltageMeterADCRead(voltageSensorADC_e adcChannel, voltageMeter_t *voltageM
bool isSagCompensationConfigured(void)
{
bool isConfigured = false;
#if defined(USE_BATTERY_VOLTAGE_SAG_COMPENSATION)
for (unsigned i = 0; i < PID_PROFILE_COUNT; i++) {
if (pidProfiles(i)->vbat_sag_compensation > 0) {
isConfigured = true;
}
}
#endif
return isConfigured;
return sagCompensationConfigured;
}
void voltageMeterADCInit(void)
@ -237,6 +230,18 @@ void voltageMeterADCInit(void)
}
}
void voltageMeterGenericInit(void)
{
sagCompensationConfigured = false;
#if defined(USE_BATTERY_VOLTAGE_SAG_COMPENSATION)
for (unsigned i = 0; i < PID_PROFILE_COUNT; i++) {
if (pidProfiles(i)->vbat_sag_compensation > 0) {
sagCompensationConfigured = true;
}
}
#endif
}
//
// ESC
//

View File

@ -100,6 +100,8 @@ PG_DECLARE_ARRAY(voltageSensorADCConfig_t, MAX_VOLTAGE_SENSOR_ADC, voltageSensor
//
void voltageMeterReset(voltageMeter_t *voltageMeter);
void voltageMeterGenericInit(void);
void voltageMeterADCInit(void);
void voltageMeterADCRefresh(void);
void voltageMeterADCRead(voltageSensorADC_e adcChannel, voltageMeter_t *voltageMeter);