diff --git a/src/main/drivers/pwm_output.c b/src/main/drivers/pwm_output.c index 29167328c9..cf86734c6e 100644 --- a/src/main/drivers/pwm_output.c +++ b/src/main/drivers/pwm_output.c @@ -169,9 +169,7 @@ static uint8_t loadDmaBufferProshot(motorDmaOutput_t *const motor, uint16_t pack void pwmWriteMotor(uint8_t index, float value) { - if (pwmMotorsEnabled) { - pwmWrite(index, value); - } + pwmWrite(index, value); } void pwmShutdownPulsesForAllMotors(uint8_t motorCount) diff --git a/src/main/drivers/pwm_output.h b/src/main/drivers/pwm_output.h index f0ef307c2a..601161fe87 100644 --- a/src/main/drivers/pwm_output.h +++ b/src/main/drivers/pwm_output.h @@ -134,11 +134,11 @@ typedef void pwmCompleteWriteFunc(uint8_t motorCount); // function pointer use typedef struct { volatile timCCR_t *ccr; TIM_TypeDef *tim; + float pulseScale; + float pulseOffset; bool forceOverflow; bool enabled; IO_t io; - float pulseScale; - float pulseOffset; } pwmOutputPort_t; typedef struct motorDevConfig_s { diff --git a/src/main/fc/cli.c b/src/main/fc/cli.c index 2d122a3ef3..2c47db92dd 100755 --- a/src/main/fc/cli.c +++ b/src/main/fc/cli.c @@ -2231,7 +2231,7 @@ static void cliDshotProg(char *cmdline) break; default: - motorControlEnable = false; + pwmDisableMotors(); int command = atoi(pch); if (command >= 0 && command < DSHOT_MIN_THROTTLE) { @@ -2259,7 +2259,7 @@ static void cliDshotProg(char *cmdline) pch = strtok_r(NULL, " ", &saveptr); } - motorControlEnable = true; + pwmEnableMotors(); } #endif diff --git a/src/main/fc/fc_core.c b/src/main/fc/fc_core.c index f3dffa82de..754abfca14 100644 --- a/src/main/fc/fc_core.c +++ b/src/main/fc/fc_core.c @@ -108,7 +108,6 @@ int16_t magHold; int16_t headFreeModeHold; -uint8_t motorControlEnable = false; static bool reverseMotors = false; static uint32_t disarmAt; // Time of automatic disarm when "Don't spin the motors when armed" is enabled and auto_disarm_delay is nonzero @@ -627,9 +626,8 @@ static void subTaskMotorUpdate(void) } #endif - if (motorControlEnable) { - writeMotors(); - } + writeMotors(); + DEBUG_SET(DEBUG_PIDLOOP, 3, micros() - startTime); } diff --git a/src/main/fc/fc_core.h b/src/main/fc/fc_core.h index b7e0d6dcb6..085ce3d758 100644 --- a/src/main/fc/fc_core.h +++ b/src/main/fc/fc_core.h @@ -27,8 +27,6 @@ extern int16_t magHold; extern bool isRXDataNew; extern int16_t headFreeModeHold; -extern uint8_t motorControlEnable; - typedef struct throttleCorrectionConfig_s { uint16_t throttle_correction_angle; // the angle when the throttle correction is maximal. in 0.1 degres, ex 225 = 22.5 ,30.0, 450 = 45.0 deg uint8_t throttle_correction_value; // the correction that will be applied at throttle_correction_angle. diff --git a/src/main/fc/fc_init.c b/src/main/fc/fc_init.c index c56da96854..0ea310861f 100644 --- a/src/main/fc/fc_init.c +++ b/src/main/fc/fc_init.c @@ -137,8 +137,6 @@ void targetPreInit(void); #endif -extern uint8_t motorControlEnable; - #ifdef SOFTSERIAL_LOOPBACK serialPort_t *loopbackPort; #endif @@ -709,7 +707,7 @@ void init(void) // Latch active features AGAIN since some may be modified by init(). latchActiveFeatures(); - motorControlEnable = true; + pwmEnableMotors(); #ifdef USE_OSD_SLAVE osdSlaveTasksInit();