Fixed and re-enabled PWMs

pull/1412/head
Rafal 2015-10-29 13:00:12 +01:00
parent 8ef60cdca2
commit e856a30c95
2 changed files with 31 additions and 1 deletions

View File

@ -49,7 +49,7 @@
#define DEVICE_RTC 1 #define DEVICE_RTC 1
#define DEVICE_PWMOUT 0 #define DEVICE_PWMOUT 1
#define DEVICE_SLEEP 1 #define DEVICE_SLEEP 1

View File

@ -51,16 +51,30 @@ void pwmout_init(pwmout_t* obj, PinName pin)
obj->inverted = STM_PIN_INVERTED(function); obj->inverted = STM_PIN_INVERTED(function);
// Enable TIM clock // Enable TIM clock
#if defined(TIM1_BASE)
if (obj->pwm == PWM_1) __HAL_RCC_TIM1_CLK_ENABLE(); if (obj->pwm == PWM_1) __HAL_RCC_TIM1_CLK_ENABLE();
#endif
#if defined(TIM2_BASE)
if (obj->pwm == PWM_2) __HAL_RCC_TIM2_CLK_ENABLE(); if (obj->pwm == PWM_2) __HAL_RCC_TIM2_CLK_ENABLE();
#endif
#if defined(TIM3_BASE)
if (obj->pwm == PWM_3) __HAL_RCC_TIM3_CLK_ENABLE(); if (obj->pwm == PWM_3) __HAL_RCC_TIM3_CLK_ENABLE();
#endif
#if defined(TIM4_BASE)
if (obj->pwm == PWM_4) __HAL_RCC_TIM4_CLK_ENABLE(); if (obj->pwm == PWM_4) __HAL_RCC_TIM4_CLK_ENABLE();
#endif
#if defined(TIM8_BASE) #if defined(TIM8_BASE)
if (obj->pwm == PWM_8) __HAL_RCC_TIM8_CLK_ENABLE(); if (obj->pwm == PWM_8) __HAL_RCC_TIM8_CLK_ENABLE();
#endif #endif
#if defined(TIM9_BASE)
if (obj->pwm == PWM_9) __HAL_RCC_TIM9_CLK_ENABLE(); if (obj->pwm == PWM_9) __HAL_RCC_TIM9_CLK_ENABLE();
#endif
#if defined(TIM10_BASE)
if (obj->pwm == PWM_10) __HAL_RCC_TIM10_CLK_ENABLE(); if (obj->pwm == PWM_10) __HAL_RCC_TIM10_CLK_ENABLE();
#endif
#if defined(TIM11_BASE)
if (obj->pwm == PWM_11) __HAL_RCC_TIM11_CLK_ENABLE(); if (obj->pwm == PWM_11) __HAL_RCC_TIM11_CLK_ENABLE();
#endif
#if defined(TIM12_BASE) #if defined(TIM12_BASE)
if (obj->pwm == PWM_12) __HAL_RCC_TIM12_CLK_ENABLE(); if (obj->pwm == PWM_12) __HAL_RCC_TIM12_CLK_ENABLE();
#endif #endif
@ -176,10 +190,18 @@ void pwmout_period_us(pwmout_t* obj, int us)
switch (obj->pwm) { switch (obj->pwm) {
// APB1 clock // APB1 clock
#if defined(TIM2_BASE)
case PWM_2: case PWM_2:
#endif
#if defined(TIM3_BASE)
case PWM_3: case PWM_3:
#endif
#if defined(TIM4_BASE)
case PWM_4: case PWM_4:
#endif
#if defined(TIM5_BASE)
case PWM_5: case PWM_5:
#endif
#if defined(TIM12_BASE) #if defined(TIM12_BASE)
case PWM_12: case PWM_12:
#endif #endif
@ -194,13 +216,21 @@ void pwmout_period_us(pwmout_t* obj, int us)
break; break;
// APB2 clock // APB2 clock
#if defined(TIM1_BASE)
case PWM_1: case PWM_1:
#endif
#if defined(TIM8_BASE) #if defined(TIM8_BASE)
case PWM_8: case PWM_8:
#endif #endif
#if defined(TIM9_BASE)
case PWM_9: case PWM_9:
#endif
#if defined(TIM10_BASE)
case PWM_10: case PWM_10:
#endif
#if defined(TIM11_BASE)
case PWM_11: case PWM_11:
#endif
PclkFreq = HAL_RCC_GetPCLK2Freq(); PclkFreq = HAL_RCC_GetPCLK2Freq();
APBxCLKDivider = RCC_ClkInitStruct.APB2CLKDivider; APBxCLKDivider = RCC_ClkInitStruct.APB2CLKDivider;
break; break;