🐛 Fix STM32 FastPWM
This commit is contained in:
parent
0f7f709aad
commit
77af48e547
|
@ -74,6 +74,8 @@ void set_pwm_frequency(const pin_t pin, int f_desired) {
|
||||||
PinName pin_name = digitalPinToPinName(pin);
|
PinName pin_name = digitalPinToPinName(pin);
|
||||||
TIM_TypeDef *Instance = (TIM_TypeDef *)pinmap_peripheral(pin_name, PinMap_PWM); // Get HAL timer instance
|
TIM_TypeDef *Instance = (TIM_TypeDef *)pinmap_peripheral(pin_name, PinMap_PWM); // Get HAL timer instance
|
||||||
|
|
||||||
|
const PinName pin_name = digitalPinToPinName(pin);
|
||||||
|
TIM_TypeDef * const Instance = (TIM_TypeDef *)pinmap_peripheral(pin_name, PinMap_PWM); // Get HAL timer instance
|
||||||
uint32_t index = get_timer_index(Instance);
|
uint32_t index = get_timer_index(Instance);
|
||||||
|
|
||||||
// Protect used timers
|
// Protect used timers
|
||||||
|
@ -83,11 +85,11 @@ void set_pwm_frequency(const pin_t pin, int f_desired) {
|
||||||
#endif
|
#endif
|
||||||
) return;
|
) return;
|
||||||
|
|
||||||
if (HardwareTimer_Handle[index] == nullptr) // If frequency is set before duty we need to create a handle here.
|
if (HardwareTimer_Handle[index] == nullptr) // If frequency is set before duty we need to create a handle here.
|
||||||
HardwareTimer_Handle[index]->__this = new HardwareTimer((TIM_TypeDef *)pinmap_peripheral(pin_name, PinMap_PWM));
|
HardwareTimer_Handle[index]->__this = new HardwareTimer((TIM_TypeDef *)pinmap_peripheral(pin_name, PinMap_PWM));
|
||||||
HT = (HardwareTimer *)(HardwareTimer_Handle[index]->__this);
|
HT = (HardwareTimer *)(HardwareTimer_Handle[index]->__this);
|
||||||
timer_freq[index] = f_desired; // Save the last frequency so duty will not set the default for this timer number.
|
timer_freq[index] = f_desired; // Save the last frequency so duty will not set the default for this timer number.
|
||||||
HT->setOverflow(f_desired, HERTZ_FORMAT);
|
HT->setOverflow(f_desired, HERTZ_FORMAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // HAL_STM32
|
#endif // HAL_STM32
|
||||||
|
|
Loading…
Reference in a new issue