@@ -53,64 +53,104 @@ void pwmout_init(pwmout_t* obj, PinName pin)
53
53
54
54
// Enable TIM clock
55
55
#if defined(TIM1_BASE )
56
- if (obj -> pwm == PWM_1 ) __HAL_RCC_TIM1_CLK_ENABLE ();
56
+ if (obj -> pwm == PWM_1 ){
57
+ __HAL_RCC_TIM1_CLK_ENABLE ();
58
+ }
57
59
#endif
58
60
#if defined(TIM2_BASE )
59
- if (obj -> pwm == PWM_2 ) __HAL_RCC_TIM2_CLK_ENABLE ();
61
+ if (obj -> pwm == PWM_2 ) {
62
+ __HAL_RCC_TIM2_CLK_ENABLE ();
63
+ }
60
64
#endif
61
65
#if defined(TIM3_BASE )
62
- if (obj -> pwm == PWM_3 ) __HAL_RCC_TIM3_CLK_ENABLE ();
66
+ if (obj -> pwm == PWM_3 ) {
67
+ __HAL_RCC_TIM3_CLK_ENABLE ();
68
+ }
63
69
#endif
64
70
#if defined(TIM4_BASE )
65
- if (obj -> pwm == PWM_4 ) __HAL_RCC_TIM4_CLK_ENABLE ();
71
+ if (obj -> pwm == PWM_4 ) {
72
+ __HAL_RCC_TIM4_CLK_ENABLE ();
73
+ }
66
74
#endif
67
75
#if defined(TIM5_BASE )
68
- if (obj -> pwm == PWM_5 ) __HAL_RCC_TIM5_CLK_ENABLE ();
76
+ if (obj -> pwm == PWM_5 ) {
77
+ __HAL_RCC_TIM5_CLK_ENABLE ();
78
+ }
69
79
#endif
70
80
#if defined(TIM8_BASE )
71
- if (obj -> pwm == PWM_8 ) __HAL_RCC_TIM8_CLK_ENABLE ();
81
+ if (obj -> pwm == PWM_8 ) {
82
+ __HAL_RCC_TIM8_CLK_ENABLE ();
83
+ }
72
84
#endif
73
85
#if defined(TIM9_BASE )
74
- if (obj -> pwm == PWM_9 ) __HAL_RCC_TIM9_CLK_ENABLE ();
86
+ if (obj -> pwm == PWM_9 ) {
87
+ __HAL_RCC_TIM9_CLK_ENABLE ();
88
+ }
75
89
#endif
76
90
#if defined(TIM10_BASE )
77
- if (obj -> pwm == PWM_10 ) __HAL_RCC_TIM10_CLK_ENABLE ();
91
+ if (obj -> pwm == PWM_10 ) {
92
+ __HAL_RCC_TIM10_CLK_ENABLE ();
93
+ }
78
94
#endif
79
95
#if defined(TIM11_BASE )
80
- if (obj -> pwm == PWM_11 ) __HAL_RCC_TIM11_CLK_ENABLE ();
96
+ if (obj -> pwm == PWM_11 ) {
97
+ __HAL_RCC_TIM11_CLK_ENABLE ();
98
+ }
81
99
#endif
82
100
#if defined(TIM12_BASE )
83
- if (obj -> pwm == PWM_12 ) __HAL_RCC_TIM12_CLK_ENABLE ();
101
+ if (obj -> pwm == PWM_12 ) {
102
+ __HAL_RCC_TIM12_CLK_ENABLE ();
103
+ }
84
104
#endif
85
105
#if defined(TIM13_BASE )
86
- if (obj -> pwm == PWM_13 ) __HAL_RCC_TIM13_CLK_ENABLE ();
106
+ if (obj -> pwm == PWM_13 ) {
107
+ __HAL_RCC_TIM13_CLK_ENABLE ();
108
+ }
87
109
#endif
88
110
#if defined(TIM14_BASE )
89
- if (obj -> pwm == PWM_14 ) __HAL_RCC_TIM14_CLK_ENABLE ();
111
+ if (obj -> pwm == PWM_14 ) {
112
+ __HAL_RCC_TIM14_CLK_ENABLE ();
113
+ }
90
114
#endif
91
115
#if defined(TIM15_BASE )
92
- if (obj -> pwm == PWM_15 ) __HAL_RCC_TIM15_CLK_ENABLE ();
116
+ if (obj -> pwm == PWM_15 ) {
117
+ __HAL_RCC_TIM15_CLK_ENABLE ();
118
+ }
93
119
#endif
94
120
#if defined(TIM16_BASE )
95
- if (obj -> pwm == PWM_16 ) __HAL_RCC_TIM16_CLK_ENABLE ();
121
+ if (obj -> pwm == PWM_16 ) {
122
+ __HAL_RCC_TIM16_CLK_ENABLE ();
123
+ }
96
124
#endif
97
125
#if defined(TIM17_BASE )
98
- if (obj -> pwm == PWM_17 ) __HAL_RCC_TIM17_CLK_ENABLE ();
126
+ if (obj -> pwm == PWM_17 ) {
127
+ __HAL_RCC_TIM17_CLK_ENABLE ();
128
+ }
99
129
#endif
100
130
#if defined(TIM18_BASE )
101
- if (obj -> pwm == PWM_18 ) __HAL_RCC_TIM18_CLK_ENABLE ();
131
+ if (obj -> pwm == PWM_18 ) {
132
+ __HAL_RCC_TIM18_CLK_ENABLE ();
133
+ }
102
134
#endif
103
135
#if defined(TIM19_BASE )
104
- if (obj -> pwm == PWM_19 ) __HAL_RCC_TIM19_CLK_ENABLE ();
136
+ if (obj -> pwm == PWM_19 ) {
137
+ __HAL_RCC_TIM19_CLK_ENABLE ();
138
+ }
105
139
#endif
106
140
#if defined(TIM20_BASE )
107
- if (obj -> pwm == PWM_20 ) __HAL_RCC_TIM20_CLK_ENABLE ();
141
+ if (obj -> pwm == PWM_20 ) {
142
+ __HAL_RCC_TIM20_CLK_ENABLE ();
143
+ }
108
144
#endif
109
145
#if defined(TIM21_BASE )
110
- if (obj -> pwm == PWM_21 ) __HAL_RCC_TIM21_CLK_ENABLE ();
146
+ if (obj -> pwm == PWM_21 ) {
147
+ __HAL_RCC_TIM21_CLK_ENABLE ();
148
+ }
111
149
#endif
112
150
#if defined(TIM22_BASE )
113
- if (obj -> pwm == PWM_22 ) __HAL_RCC_TIM22_CLK_ENABLE ();
151
+ if (obj -> pwm == PWM_22 ) {
152
+ __HAL_RCC_TIM22_CLK_ENABLE ();
153
+ }
114
154
#endif
115
155
// Configure GPIO
116
156
pinmap_pinout (pin , PinMap_PWM );
@@ -244,20 +284,22 @@ void pwmout_period_us(pwmout_t* obj, int us)
244
284
/* By default use, 1us as SW pre-scaler */
245
285
obj -> prescaler = 1 ;
246
286
// TIMxCLK = PCLKx when the APB prescaler = 1 else TIMxCLK = 2 * PCLKx
247
- if (APBxCLKDivider == RCC_HCLK_DIV1 )
248
- TimHandle .Init .Prescaler = (((PclkFreq ) / 1000000 )) - 1 ; // 1 us tick
249
- else
250
- TimHandle .Init .Prescaler = (((PclkFreq * 2 ) / 1000000 )) - 1 ; // 1 us tick
251
- TimHandle .Init .Period = (us - 1 );
287
+ if (APBxCLKDivider == RCC_HCLK_DIV1 ) {
288
+ TimHandle .Init .Prescaler = (((PclkFreq ) / 1000000 )) - 1 ; // 1 us tick
289
+ } else {
290
+ TimHandle .Init .Prescaler = (((PclkFreq * 2 ) / 1000000 )) - 1 ; // 1 us tick
291
+ }
292
+ TimHandle .Init .Period = (us - 1 );
252
293
253
294
/* In case period or pre-scalers are out of range, loop-in to get valid values */
254
295
while ((TimHandle .Init .Period > 0xFFFF ) || (TimHandle .Init .Prescaler > 0xFFFF )) {
255
296
obj -> prescaler = obj -> prescaler * 2 ;
256
- if (APBxCLKDivider == RCC_HCLK_DIV1 )
257
- TimHandle .Init .Prescaler = (((PclkFreq ) / 1000000 ) * obj -> prescaler ) - 1 ;
258
- else
259
- TimHandle .Init .Prescaler = (((PclkFreq * 2 ) / 1000000 ) * obj -> prescaler ) - 1 ;
260
- TimHandle .Init .Period = (us - 1 ) / obj -> prescaler ;
297
+ if (APBxCLKDivider == RCC_HCLK_DIV1 ) {
298
+ TimHandle .Init .Prescaler = (((PclkFreq ) / 1000000 ) * obj -> prescaler ) - 1 ;
299
+ } else {
300
+ TimHandle .Init .Prescaler = (((PclkFreq * 2 ) / 1000000 ) * obj -> prescaler ) - 1 ;
301
+ }
302
+ TimHandle .Init .Period = (us - 1 ) / obj -> prescaler ;
261
303
/* Period decreases and prescaler increases over loops, so check for
262
304
* possible out of range cases */
263
305
if ((TimHandle .Init .Period < 0xFFFF ) && (TimHandle .Init .Prescaler > 0xFFFF )) {
0 commit comments