Skip to content

Commit d0edce0

Browse files
author
Richard Unger
committed
Fixed Software 6-PWM?
1 parent 7b91728 commit d0edce0

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

src/drivers/hardware_specific/stm32_mcu.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -98,19 +98,19 @@ HardwareTimer* _initPinPWMLow(uint32_t PWM_freq, PinMap* timer)
9898
// sets internal fields of HT, but we can't set polarity here
9999
HT->setMode(channel, TIMER_OUTPUT_COMPARE_PWM2, timer->pin);
100100
// set polarity, unfortunately we have to set these other fields too
101-
TIM_OC_InitTypeDef sConfigOC = TIM_OC_InitTypeDef();
102-
sConfigOC.OCMode = TIM_OCMODE_PWM2;
103-
sConfigOC.Pulse = __HAL_TIM_GET_COMPARE(&(HardwareTimer_Handle[index]->handle), HT->getChannel(channel));
104-
sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
105-
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
106-
#if defined(TIM_OCIDLESTATE_SET) // TODO check this flag, looks like G4 uses something else...
107-
sConfigOC.OCIdleState = TIM_OCIDLESTATE_SET;
108-
#endif
109-
#if defined(TIM_OCNIDLESTATE_RESET) // TODO check this flag, looks like G4 uses something else...
110-
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
111-
sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
112-
#endif
113-
HAL_TIM_PWM_ConfigChannel(&(HardwareTimer_Handle[index]->handle), &sConfigOC, channel);
101+
// TIM_OC_InitTypeDef sConfigOC = TIM_OC_InitTypeDef();
102+
// sConfigOC.OCMode = TIM_OCMODE_PWM2;
103+
// sConfigOC.Pulse = __HAL_TIM_GET_COMPARE(&(HardwareTimer_Handle[index]->handle), HT->getChannel(channel));
104+
// sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
105+
// sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
106+
// #if defined(TIM_OCIDLESTATE_SET) // TODO check this flag, looks like G4 uses something else...
107+
// sConfigOC.OCIdleState = TIM_OCIDLESTATE_SET;
108+
// #endif
109+
// #if defined(TIM_OCNIDLESTATE_RESET) // TODO check this flag, looks like G4 uses something else...
110+
// sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
111+
// sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
112+
// #endif
113+
// HAL_TIM_PWM_ConfigChannel(&(HardwareTimer_Handle[index]->handle), &sConfigOC, channel);
114114
return HT;
115115
}
116116

@@ -718,12 +718,12 @@ void _writeDutyCycle6PWM(float dc_a, float dc_b, float dc_c, void* params){
718718
break;
719719
case _SOFTWARE_6PWM:
720720
float dead_zone = ((STM32DriverParams*)params)->dead_zone / 2.0f;
721-
_setPwm(((STM32DriverParams*)params)->timers[0], ((STM32DriverParams*)params)->channels[0], _constrain(dc_a + dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
722-
_setPwm(((STM32DriverParams*)params)->timers[0], ((STM32DriverParams*)params)->channels[1], _constrain(dc_a - dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
723-
_setPwm(((STM32DriverParams*)params)->timers[1], ((STM32DriverParams*)params)->channels[2], _constrain(dc_b + dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
724-
_setPwm(((STM32DriverParams*)params)->timers[1], ((STM32DriverParams*)params)->channels[3], _constrain(dc_b - dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
725-
_setPwm(((STM32DriverParams*)params)->timers[2], ((STM32DriverParams*)params)->channels[4], _constrain(dc_c + dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
726-
_setPwm(((STM32DriverParams*)params)->timers[2], ((STM32DriverParams*)params)->channels[5], _constrain(dc_c - dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
721+
_setPwm(((STM32DriverParams*)params)->timers[0], ((STM32DriverParams*)params)->channels[0], _constrain(dc_a - dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
722+
_setPwm(((STM32DriverParams*)params)->timers[1], ((STM32DriverParams*)params)->channels[1], _constrain(dc_a + dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
723+
_setPwm(((STM32DriverParams*)params)->timers[2], ((STM32DriverParams*)params)->channels[2], _constrain(dc_b - dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
724+
_setPwm(((STM32DriverParams*)params)->timers[3], ((STM32DriverParams*)params)->channels[3], _constrain(dc_b + dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
725+
_setPwm(((STM32DriverParams*)params)->timers[4], ((STM32DriverParams*)params)->channels[4], _constrain(dc_c - dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
726+
_setPwm(((STM32DriverParams*)params)->timers[5], ((STM32DriverParams*)params)->channels[5], _constrain(dc_c + dead_zone, 0.0f, 1.0f)*_PWM_RANGE, _PWM_RESOLUTION);
727727
break;
728728
}
729729
}

0 commit comments

Comments
 (0)