diff --git a/src/main/drivers/pwm_output.c b/src/main/drivers/pwm_output.c index 7e8fb618a1..abd21b031f 100644 --- a/src/main/drivers/pwm_output.c +++ b/src/main/drivers/pwm_output.c @@ -74,7 +74,7 @@ static void pwmOCConfig(TIM_TypeDef *tim, uint8_t channel, uint16_t value, uint8 if (output & TIMER_OUTPUT_N_CHANNEL) { TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset; - TIM_OCInitStructure.TIM_OCNPolarity = (output & TIMER_OUTPUT_INVERTED) ? TIM_OCNPolarity_High : TIM_OCNPolarity_Low; + TIM_OCInitStructure.TIM_OCNPolarity = (output & TIMER_OUTPUT_INVERTED) ? TIM_OCNPolarity_Low : TIM_OCNPolarity_High; } else { TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; diff --git a/src/main/drivers/pwm_output_dshot.c b/src/main/drivers/pwm_output_dshot.c index 580bf8b908..c92dfdff6e 100644 --- a/src/main/drivers/pwm_output_dshot.c +++ b/src/main/drivers/pwm_output_dshot.c @@ -143,7 +143,11 @@ void pwmDshotMotorHardwareConfig(const timerHardware_t *timerHardware, uint8_t m motor->timer = &dmaMotorTimers[timerIndex]; motor->timer->timerDmaSources &= ~motor->timerDmaSource; - TIM_CCxCmd(timer, timerHardware->channel, TIM_CCx_Enable); + if (output & TIMER_OUTPUT_N_CHANNEL) { + TIM_CCxNCmd(timer, timerHardware->channel, TIM_CCxN_Enable); + } else { + TIM_CCxCmd(timer, timerHardware->channel, TIM_CCx_Enable); + } if (configureTimer) { TIM_CtrlPWMOutputs(timer, ENABLE);