@@ -181,9 +181,9 @@ void HardwareTimer::pauseChannel(uint32_t channel)
181
181
return ;
182
182
}
183
183
184
- int timAssociatedInputChannel;
185
- int LLChannel = getLLChannel (channel);
186
- int interrupt = getIT (channel);
184
+ uint32_t timAssociatedInputChannel;
185
+ uint32_t LLChannel = getLLChannel (channel);
186
+ uint32_t interrupt = getIT (channel);
187
187
188
188
// Disable channel and corresponding interrupt
189
189
__HAL_TIM_DISABLE_IT (&(_timerObj.handle ), interrupt);
@@ -238,123 +238,123 @@ void HardwareTimer::resume(void)
238
238
* @param Arduino channel [1..4]
239
239
* @retval HAL channel. Error handler called if arduino channel is invalid
240
240
*/
241
- int HardwareTimer::getChannel (uint32_t channel)
241
+ uint32_t HardwareTimer::getChannel (uint32_t channel)
242
242
{
243
- int return_value = -1 ;
243
+ uint32_t timChannel = -1 ;
244
244
245
245
switch (channel) {
246
246
case 1 :
247
- return_value = TIM_CHANNEL_1;
247
+ timChannel = TIM_CHANNEL_1;
248
248
break ;
249
249
case 2 :
250
- return_value = TIM_CHANNEL_2;
250
+ timChannel = TIM_CHANNEL_2;
251
251
break ;
252
252
case 3 :
253
- return_value = TIM_CHANNEL_3;
253
+ timChannel = TIM_CHANNEL_3;
254
254
break ;
255
255
case 4 :
256
- return_value = TIM_CHANNEL_4;
256
+ timChannel = TIM_CHANNEL_4;
257
257
break ;
258
258
default :
259
259
Error_Handler ();
260
260
}
261
- return return_value ;
261
+ return timChannel ;
262
262
}
263
263
264
264
/* *
265
265
* @brief Convert arduino channel into LL channels used (regular and/or complementary)
266
266
* @param Arduino channel [1..4]
267
267
* @retval LL channel. Error handler called if arduino channel is invalid
268
268
*/
269
- int HardwareTimer::getLLChannel (uint32_t channel)
269
+ uint32_t HardwareTimer::getLLChannel (uint32_t channel)
270
270
{
271
- int return_value = 0 ;
271
+ bool error = false ;
272
+ uint32_t ll_channel = 0 ;
272
273
273
274
#if defined(TIM_CCER_CC1NE)
274
275
if (__ChannelsUsed[channel - 1 ] & COMPLEMENTARY_CHAN_MASK) {
275
276
// Complementary channel
276
277
switch (channel) {
277
278
case 1 :
278
- return_value = LL_TIM_CHANNEL_CH1N;
279
+ ll_channel = LL_TIM_CHANNEL_CH1N;
279
280
break ;
280
281
case 2 :
281
- return_value = LL_TIM_CHANNEL_CH2N;
282
+ ll_channel = LL_TIM_CHANNEL_CH2N;
282
283
break ;
283
284
case 3 :
284
- return_value = LL_TIM_CHANNEL_CH3N;
285
+ ll_channel = LL_TIM_CHANNEL_CH3N;
285
286
break ;
286
287
#if defined(LL_TIM_CHANNEL_CH4N)
287
288
case 4 :
288
- return_value = LL_TIM_CHANNEL_CH4N;
289
+ ll_channel = LL_TIM_CHANNEL_CH4N;
289
290
break ;
290
291
#endif
291
292
default :
292
- return_value = - 1 ;
293
+ error = true ;
293
294
}
294
295
}
295
296
#endif
296
- if ((return_value != - 1 ) && (__ChannelsUsed[channel - 1 ] & REGULAR_CHAN_MASK)) {
297
+ if ((!error ) && (__ChannelsUsed[channel - 1 ] & REGULAR_CHAN_MASK)) {
297
298
// Regular channel not complementary
298
299
switch (channel) {
299
300
case 1 :
300
- return_value |= LL_TIM_CHANNEL_CH1;
301
+ ll_channel |= LL_TIM_CHANNEL_CH1;
301
302
break ;
302
303
case 2 :
303
- return_value |= LL_TIM_CHANNEL_CH2;
304
+ ll_channel |= LL_TIM_CHANNEL_CH2;
304
305
break ;
305
306
case 3 :
306
- return_value |= LL_TIM_CHANNEL_CH3;
307
+ ll_channel |= LL_TIM_CHANNEL_CH3;
307
308
break ;
308
309
case 4 :
309
- return_value |= LL_TIM_CHANNEL_CH4;
310
+ ll_channel |= LL_TIM_CHANNEL_CH4;
310
311
break ;
311
312
default :
312
- return_value = - 1 ;
313
+ error = true ;
313
314
}
314
315
}
315
- if (return_value == - 1 ) {
316
+ if (error ) {
316
317
Error_Handler ();
317
318
}
318
- return return_value ;
319
+ return ll_channel ;
319
320
}
320
321
321
322
/* *
322
323
* @brief Convert arduino channel into HAL Interrupt ID
323
324
* @param Arduino channel [1..4]
324
325
* @retval HAL channel. Error handler called if arduino channel is invalid
325
326
*/
326
- int HardwareTimer::getIT (uint32_t channel)
327
+ uint32_t HardwareTimer::getIT (uint32_t channel)
327
328
{
328
- int return_value = -1 ;
329
-
329
+ uint32_t interrupt = 0 ;
330
330
switch (channel) {
331
331
case 1 :
332
- return_value = TIM_IT_CC1;
332
+ interrupt = TIM_IT_CC1;
333
333
break ;
334
334
case 2 :
335
- return_value = TIM_IT_CC2;
335
+ interrupt = TIM_IT_CC2;
336
336
break ;
337
337
case 3 :
338
- return_value = TIM_IT_CC3;
338
+ interrupt = TIM_IT_CC3;
339
339
break ;
340
340
case 4 :
341
- return_value = TIM_IT_CC4;
341
+ interrupt = TIM_IT_CC4;
342
342
break ;
343
343
default :
344
344
Error_Handler ();
345
345
}
346
- return return_value ;
346
+ return interrupt ;
347
347
}
348
348
349
349
/* *
350
350
* @brief Get input associated channel
351
351
* Channel 1 and 2 are associated; channel 3 and 4 are associated
352
352
* @param Arduino channel [1..4]
353
- * @retval HAL channel. return -1 if arduino channel is invalid
353
+ * @retval HAL channel. Error handler called if arduino channel is invalid
354
354
*/
355
- int HardwareTimer::getAssociatedChannel (uint32_t channel)
355
+ uint32_t HardwareTimer::getAssociatedChannel (uint32_t channel)
356
356
{
357
- int timAssociatedInputChannel = - 1 ;
357
+ uint32_t timAssociatedInputChannel = 0 ;
358
358
switch (channel) {
359
359
case 1 :
360
360
timAssociatedInputChannel = 2 ;
@@ -369,6 +369,7 @@ int HardwareTimer::getAssociatedChannel(uint32_t channel)
369
369
timAssociatedInputChannel = 3 ;
370
370
break ;
371
371
default :
372
+ Error_Handler ();
372
373
break ;
373
374
}
374
375
return timAssociatedInputChannel;
@@ -381,9 +382,9 @@ int HardwareTimer::getAssociatedChannel(uint32_t channel)
381
382
*/
382
383
void HardwareTimer::resumeChannel (uint32_t channel)
383
384
{
384
- int timChannel = getChannel (channel);
385
- int timAssociatedInputChannel;
386
- int interrupt = getIT (channel);
385
+ uint32_t timChannel = getChannel (channel);
386
+ uint32_t timAssociatedInputChannel;
387
+ uint32_t interrupt = getIT (channel);
387
388
388
389
// Clear flag and enable IT
389
390
if (callbacks[channel]) {
@@ -631,8 +632,8 @@ void HardwareTimer::setMode(uint32_t channel, TimerModes_t mode, uint32_t pin, C
631
632
*/
632
633
void HardwareTimer::setMode (uint32_t channel, TimerModes_t mode, PinName pin, ChannelInputFilter_t filter)
633
634
{
634
- int timChannel = getChannel (channel);
635
- int timAssociatedInputChannel;
635
+ uint32_t timChannel = getChannel (channel);
636
+ uint32_t timAssociatedInputChannel;
636
637
TIM_OC_InitTypeDef channelOC;
637
638
TIM_IC_InitTypeDef channelIC;
638
639
@@ -739,7 +740,7 @@ void HardwareTimer::setMode(uint32_t channel, TimerModes_t mode, PinName pin, Ch
739
740
_ChannelMode[channel - 1 ] = mode;
740
741
741
742
if (pin != NC) {
742
- if (( int ) getTimerChannel (pin) == timChannel) {
743
+ if (getTimerChannel (pin) == timChannel) {
743
744
/* Configure PWM GPIO pins */
744
745
pinmap_pinout (pin, PinMap_TIM);
745
746
#if defined(STM32F1xx)
@@ -807,7 +808,7 @@ void HardwareTimer::setPreloadEnable(bool value)
807
808
*/
808
809
void HardwareTimer::setCaptureCompare (uint32_t channel, uint32_t compare, TimerCompareFormat_t format)
809
810
{
810
- int timChannel = getChannel (channel);
811
+ uint32_t timChannel = getChannel (channel);
811
812
uint32_t Prescalerfactor = LL_TIM_GetPrescaler (_timerObj.handle .Instance ) + 1 ;
812
813
uint32_t CCR_RegisterValue;
813
814
@@ -869,7 +870,7 @@ void HardwareTimer::setCaptureCompare(uint32_t channel, uint32_t compare, TimerC
869
870
*/
870
871
uint32_t HardwareTimer::getCaptureCompare (uint32_t channel, TimerCompareFormat_t format)
871
872
{
872
- int timChannel = getChannel (channel);
873
+ uint32_t timChannel = getChannel (channel);
873
874
uint32_t CCR_RegisterValue = __HAL_TIM_GET_COMPARE (&(_timerObj.handle ), timChannel);
874
875
uint32_t Prescalerfactor = LL_TIM_GetPrescaler (_timerObj.handle .Instance ) + 1 ;
875
876
uint32_t return_value;
@@ -1010,7 +1011,7 @@ void HardwareTimer::detachInterrupt()
1010
1011
*/
1011
1012
void HardwareTimer::attachInterrupt (uint32_t channel, callback_function_t callback)
1012
1013
{
1013
- int interrupt = getIT (channel);
1014
+ uint32_t interrupt = getIT (channel);
1014
1015
1015
1016
if ((channel == 0 ) || (channel > (TIMER_CHANNELS + 1 ))) {
1016
1017
Error_Handler (); // only channel 1..4 have an interrupt
@@ -1036,7 +1037,7 @@ void HardwareTimer::attachInterrupt(uint32_t channel, callback_function_t callba
1036
1037
*/
1037
1038
void HardwareTimer::detachInterrupt (uint32_t channel)
1038
1039
{
1039
- int interrupt = getIT (channel);
1040
+ uint32_t interrupt = getIT (channel);
1040
1041
1041
1042
if ((channel == 0 ) || (channel > (TIMER_CHANNELS + 1 ))) {
1042
1043
Error_Handler (); // only channel 1..4 have an interrupt
@@ -1169,14 +1170,14 @@ bool HardwareTimer::isRunning()
1169
1170
*/
1170
1171
bool HardwareTimer::isRunningChannel (uint32_t channel)
1171
1172
{
1172
- int LLChannel = getLLChannel (channel);
1173
- int interrupt = getIT (channel);
1173
+ uint32_t LLChannel = getLLChannel (channel);
1174
+ uint32_t interrupt = getIT (channel);
1174
1175
bool ret;
1175
1176
1176
1177
// channel is running if: timer is running, and either output channel is
1177
1178
// enabled or interrupt is set
1178
1179
ret = LL_TIM_CC_IsEnabledChannel (_timerObj.handle .Instance , LLChannel)
1179
- || (__HAL_TIM_GET_IT_SOURCE (&(_timerObj.handle ), ( uint32_t ) interrupt) == SET);
1180
+ || (__HAL_TIM_GET_IT_SOURCE (&(_timerObj.handle ), interrupt) == SET);
1180
1181
return (isRunning () && ret);
1181
1182
}
1182
1183
0 commit comments