From 79b068ef3f15b87d1e747c49b76ee5d64ed7de6a Mon Sep 17 00:00:00 2001 From: Sami Korhonen Date: Sat, 15 Oct 2016 20:48:05 +0300 Subject: [PATCH] Fix inverted timer output --- src/main/drivers/pwm_output_hal.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/drivers/pwm_output_hal.c b/src/main/drivers/pwm_output_hal.c index 2cda188169..5f36cc8a44 100644 --- a/src/main/drivers/pwm_output_hal.c +++ b/src/main/drivers/pwm_output_hal.c @@ -42,13 +42,12 @@ static void pwmOCConfig(TIM_TypeDef *tim, uint8_t channel, uint16_t value, uint8 if(Handle == NULL) return; TIM_OC_InitTypeDef TIM_OCInitStructure; - TIM_OCInitStructure.OCMode = TIM_OCMODE_PWM2; - TIM_OCInitStructure.OCNIdleState = TIM_OCIDLESTATE_RESET; TIM_OCInitStructure.Pulse = value; - TIM_OCInitStructure.OCPolarity = TIM_OCPOLARITY_LOW; - TIM_OCInitStructure.OCNPolarity = TIM_OCPOLARITY_HIGH; + TIM_OCInitStructure.OCPolarity = (output & TIMER_OUTPUT_INVERTED) ? TIM_OCPOLARITY_HIGH : TIM_OCPOLARITY_LOW; + TIM_OCInitStructure.OCNPolarity = (output & TIMER_OUTPUT_INVERTED) ? TIM_OCNPOLARITY_LOW : TIM_OCNPOLARITY_HIGH; TIM_OCInitStructure.OCIdleState = TIM_OCIDLESTATE_SET; + TIM_OCInitStructure.OCNIdleState = TIM_OCNIDLESTATE_RESET; TIM_OCInitStructure.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(Handle, &TIM_OCInitStructure, channel);