mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-19 06:15:16 +03:00
Fixing a null dereference in the case that VBAT is not defined
This commit is contained in:
parent
fd245bb8f8
commit
cb39345dd3
1 changed files with 8 additions and 3 deletions
|
@ -751,8 +751,13 @@ STATIC_UNIT_TESTED void servoMixer(void)
|
||||||
void mixTable(void)
|
void mixTable(void)
|
||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
fix12_t vbatCompensationFactor;
|
fix12_t vbatCompensationFactor = 0;
|
||||||
static fix12_t mixReduction;
|
static fix12_t mixReduction;
|
||||||
|
bool use_vbat_compensation = false;
|
||||||
|
if (batteryConfig && batteryConfig->vbatPidCompensation) {
|
||||||
|
use_vbat_compensation = true;
|
||||||
|
vbatCompensationFactor = calculateVbatPidCompensation();
|
||||||
|
}
|
||||||
|
|
||||||
bool isFailsafeActive = failsafeIsActive(); // TODO - Find out if failsafe checks are really needed here in mixer code
|
bool isFailsafeActive = failsafeIsActive(); // TODO - Find out if failsafe checks are really needed here in mixer code
|
||||||
|
|
||||||
|
@ -766,7 +771,7 @@ void mixTable(void)
|
||||||
int16_t rollPitchYawMixMax = 0; // assumption: symetrical about zero.
|
int16_t rollPitchYawMixMax = 0; // assumption: symetrical about zero.
|
||||||
int16_t rollPitchYawMixMin = 0;
|
int16_t rollPitchYawMixMin = 0;
|
||||||
|
|
||||||
if (batteryConfig->vbatPidCompensation) vbatCompensationFactor = calculateVbatPidCompensation(); // Calculate voltage compensation
|
if (use_vbat_compensation) rollPitchYawMix[i] = qMultiply(vbatCompensationFactor, rollPitchYawMix[i]); // Add voltage compensation
|
||||||
|
|
||||||
// Find roll/pitch/yaw desired output
|
// Find roll/pitch/yaw desired output
|
||||||
for (i = 0; i < motorCount; i++) {
|
for (i = 0; i < motorCount; i++) {
|
||||||
|
@ -775,7 +780,7 @@ void mixTable(void)
|
||||||
axisPID[ROLL] * currentMixer[i].roll +
|
axisPID[ROLL] * currentMixer[i].roll +
|
||||||
-mixerConfig->yaw_motor_direction * axisPID[YAW] * currentMixer[i].yaw;
|
-mixerConfig->yaw_motor_direction * axisPID[YAW] * currentMixer[i].yaw;
|
||||||
|
|
||||||
if (batteryConfig->vbatPidCompensation) rollPitchYawMix[i] = qMultiply(vbatCompensationFactor, rollPitchYawMix[i]); // Add voltage compensation
|
if (use_vbat_compensation) rollPitchYawMix[i] = qMultiply(vbatCompensationFactor, rollPitchYawMix[i]); // Add voltage compensation
|
||||||
|
|
||||||
if (rollPitchYawMix[i] > rollPitchYawMixMax) rollPitchYawMixMax = rollPitchYawMix[i];
|
if (rollPitchYawMix[i] > rollPitchYawMixMax) rollPitchYawMixMax = rollPitchYawMix[i];
|
||||||
if (rollPitchYawMix[i] < rollPitchYawMixMin) rollPitchYawMixMin = rollPitchYawMix[i];
|
if (rollPitchYawMix[i] < rollPitchYawMixMin) rollPitchYawMixMin = rollPitchYawMix[i];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue