Merge pull request #1584 from atomiclama/master-bf
Fixed a problem when the motor count for motorInit came from custom mixer
This commit is contained in:
commit
25bcaa3a05
|
@ -242,11 +242,6 @@ void motorInit(const motorConfig_t *motorConfig, uint16_t idlePulse, uint8_t mot
|
|||
}
|
||||
}
|
||||
|
||||
bool pwmIsSynced(void)
|
||||
{
|
||||
return pwmCompleteWritePtr != NULL;
|
||||
}
|
||||
|
||||
pwmOutputPort_t *pwmGetMotors(void)
|
||||
{
|
||||
return motors;
|
||||
|
|
|
@ -253,11 +253,6 @@ void motorInit(const motorConfig_t *motorConfig, uint16_t idlePulse, uint8_t mot
|
|||
}
|
||||
}
|
||||
|
||||
bool pwmIsSynced(void)
|
||||
{
|
||||
return pwmCompleteWritePtr != NULL;
|
||||
}
|
||||
|
||||
pwmOutputPort_t *pwmGetMotors(void)
|
||||
{
|
||||
return motors;
|
||||
|
|
|
@ -65,7 +65,6 @@ static flight3DConfig_t *flight3DConfig;
|
|||
static motorConfig_t *motorConfig;
|
||||
static airplaneConfig_t *airplaneConfig;
|
||||
rxConfig_t *rxConfig;
|
||||
static bool syncMotorOutputWithPidLoop = false;
|
||||
|
||||
mixerMode_e currentMixerMode;
|
||||
static motorMixer_t currentMixer[MAX_SUPPORTED_MOTORS];
|
||||
|
@ -305,8 +304,6 @@ void mixerConfigureOutput(void)
|
|||
|
||||
motorCount = 0;
|
||||
|
||||
syncMotorOutputWithPidLoop = pwmIsSynced();
|
||||
|
||||
if (currentMixerMode == MIXER_CUSTOM || currentMixerMode == MIXER_CUSTOM_TRI || currentMixerMode == MIXER_CUSTOM_AIRPLANE) {
|
||||
// load custom mixer into currentMixer
|
||||
for (i = 0; i < MAX_SUPPORTED_MOTORS; i++) {
|
||||
|
@ -358,8 +355,6 @@ void mixerLoadMix(int index, motorMixer_t *customMixers)
|
|||
#else
|
||||
void mixerConfigureOutput(void)
|
||||
{
|
||||
syncMotorOutputWithPidLoop = pwmIsSynced();
|
||||
|
||||
motorCount = QUAD_MOTOR_COUNT;
|
||||
|
||||
for (uint8_t i = 0; i < motorCount; i++) {
|
||||
|
@ -384,9 +379,7 @@ void writeMotors(void)
|
|||
pwmWriteMotor(i, motor[i]);
|
||||
}
|
||||
|
||||
if (syncMotorOutputWithPidLoop) {
|
||||
pwmCompleteMotorUpdate(motorCount);
|
||||
}
|
||||
pwmCompleteMotorUpdate(motorCount);
|
||||
}
|
||||
|
||||
static void writeAllMotors(int16_t mc)
|
||||
|
|
|
@ -109,6 +109,7 @@ typedef struct airplaneConfig_s {
|
|||
|
||||
#define CHANNEL_FORWARDING_DISABLED (uint8_t)0xFF
|
||||
|
||||
extern uint8_t motorCount;
|
||||
extern const mixer_t mixers[];
|
||||
extern int16_t motor[MAX_SUPPORTED_MOTORS];
|
||||
extern int16_t motor_disarmed[MAX_SUPPORTED_MOTORS];
|
||||
|
|
|
@ -263,10 +263,15 @@ void init(void)
|
|||
idlePulse = 0; // brushed motors
|
||||
}
|
||||
|
||||
mixerConfigureOutput();
|
||||
#ifdef USE_SERVOS
|
||||
servoConfigureOutput();
|
||||
#endif
|
||||
|
||||
#ifdef USE_QUAD_MIXER_ONLY
|
||||
motorInit(&masterConfig.motorConfig, idlePulse, QUAD_MOTOR_COUNT);
|
||||
#else
|
||||
motorInit(&masterConfig.motorConfig, idlePulse, mixers[masterConfig.mixerMode].motorCount);
|
||||
motorInit(&masterConfig.motorConfig, idlePulse, motorCount);
|
||||
#endif
|
||||
|
||||
#ifdef USE_SERVOS
|
||||
|
@ -285,10 +290,7 @@ void init(void)
|
|||
pwmRxSetInputFilteringMode(masterConfig.inputFilteringMode);
|
||||
#endif
|
||||
|
||||
mixerConfigureOutput();
|
||||
#ifdef USE_SERVOS
|
||||
servoConfigureOutput();
|
||||
#endif
|
||||
|
||||
systemState |= SYSTEM_STATE_MOTORS_READY;
|
||||
|
||||
#ifdef BEEPER
|
||||
|
|
Loading…
Reference in New Issue