Skip to content

Commit 0ef415f

Browse files
committed
refactor(HardwareTimer): error handler usage
Signed-off-by: Frederic Pillon <[email protected]>
1 parent 5e2eb12 commit 0ef415f

File tree

1 file changed

+10
-48
lines changed

1 file changed

+10
-48
lines changed

Diff for: libraries/SrcWrapper/src/HardwareTimer.cpp

+10-48
Original file line numberDiff line numberDiff line change
@@ -174,14 +174,7 @@ void HardwareTimer::pauseChannel(uint32_t channel)
174174

175175
int timAssociatedInputChannel;
176176
int LLChannel = getLLChannel(channel);
177-
if (LLChannel == -1) {
178-
Error_Handler();
179-
}
180-
181177
int interrupt = getIT(channel);
182-
if (interrupt == -1) {
183-
Error_Handler();
184-
}
185178

186179
// Disable channel and corresponding interrupt
187180
__HAL_TIM_DISABLE_IT(&(_timerObj.handle), interrupt);
@@ -234,11 +227,11 @@ void HardwareTimer::resume(void)
234227
/**
235228
* @brief Convert arduino channel into HAL channel
236229
* @param Arduino channel [1..4]
237-
* @retval HAL channel. return -1 if arduino channel is invalid
230+
* @retval HAL channel. Error handler called if arduino channel is invalid
238231
*/
239232
int HardwareTimer::getChannel(uint32_t channel)
240233
{
241-
uint32_t return_value;
234+
int return_value;
242235

243236
switch (channel) {
244237
case 1:
@@ -254,15 +247,15 @@ int HardwareTimer::getChannel(uint32_t channel)
254247
return_value = TIM_CHANNEL_4;
255248
break;
256249
default:
257-
return_value = -1;
250+
Error_Handler();
258251
}
259252
return return_value;
260253
}
261254

262255
/**
263256
* @brief Convert configured arduino channel into LL channels (regular and/or complementary)
264257
* @param Arduino channel [1..4]
265-
* @retval LL channel. return -1 if arduino channel is invalid
258+
* @retval LL channel. Error handler called if arduino channel is invalid
266259
*/
267260
int HardwareTimer::getLLChannel(uint32_t channel)
268261
{
@@ -310,17 +303,20 @@ int HardwareTimer::getLLChannel(uint32_t channel)
310303
return_value = -1;
311304
}
312305
}
306+
if (return_value == -1) {
307+
Error_Handler();
308+
}
313309
return return_value;
314310
}
315311

316312
/**
317313
* @brief Convert arduino channel into HAL Interrupt ID
318314
* @param Arduino channel [1..4]
319-
* @retval HAL channel. return -1 if arduino channel is invalid
315+
* @retval HAL channel. Error handler called if arduino channel is invalid
320316
*/
321317
int HardwareTimer::getIT(uint32_t channel)
322318
{
323-
uint32_t return_value;
319+
int return_value;
324320

325321
switch (channel) {
326322
case 1:
@@ -336,7 +332,7 @@ int HardwareTimer::getIT(uint32_t channel)
336332
return_value = TIM_IT_CC4;
337333
break;
338334
default:
339-
return_value = -1;
335+
Error_Handler();
340336
}
341337
return return_value;
342338
}
@@ -378,19 +374,7 @@ void HardwareTimer::resumeChannel(uint32_t channel)
378374
{
379375
int timChannel = getChannel(channel);
380376
int timAssociatedInputChannel;
381-
if (timChannel == -1) {
382-
Error_Handler();
383-
}
384-
385377
int interrupt = getIT(channel);
386-
if (interrupt == -1) {
387-
Error_Handler();
388-
}
389-
390-
int LLChannel = getLLChannel(channel);
391-
if (LLChannel == -1) {
392-
Error_Handler();
393-
}
394378

395379
// Clear flag and enable IT
396380
if (callbacks[channel]) {
@@ -643,10 +627,6 @@ void HardwareTimer::setMode(uint32_t channel, TimerModes_t mode, PinName pin, Ch
643627
TIM_OC_InitTypeDef channelOC;
644628
TIM_IC_InitTypeDef channelIC;
645629

646-
if (timChannel == -1) {
647-
Error_Handler();
648-
}
649-
650630
/* Configure some default values. Maybe overwritten later */
651631
channelOC.OCMode = TIMER_NOT_USED;
652632
channelOC.Pulse = __HAL_TIM_GET_COMPARE(&(_timerObj.handle), timChannel); // keep same value already written in hardware register
@@ -822,10 +802,6 @@ void HardwareTimer::setCaptureCompare(uint32_t channel, uint32_t compare, TimerC
822802
uint32_t Prescalerfactor = LL_TIM_GetPrescaler(_timerObj.handle.Instance) + 1;
823803
uint32_t CCR_RegisterValue;
824804

825-
if (timChannel == -1) {
826-
Error_Handler();
827-
}
828-
829805
switch (format) {
830806
case MICROSEC_COMPARE_FORMAT:
831807
CCR_RegisterValue = ((compare * (getTimerClkFreq() / 1000000)) / Prescalerfactor);
@@ -1030,9 +1006,6 @@ void HardwareTimer::detachInterrupt()
10301006
void HardwareTimer::attachInterrupt(uint32_t channel, callback_function_t callback)
10311007
{
10321008
int interrupt = getIT(channel);
1033-
if (interrupt == -1) {
1034-
Error_Handler();
1035-
}
10361009

10371010
if ((channel == 0) || (channel > (TIMER_CHANNELS + 1))) {
10381011
Error_Handler(); // only channel 1..4 have an interrupt
@@ -1059,9 +1032,6 @@ void HardwareTimer::attachInterrupt(uint32_t channel, callback_function_t callba
10591032
void HardwareTimer::detachInterrupt(uint32_t channel)
10601033
{
10611034
int interrupt = getIT(channel);
1062-
if (interrupt == -1) {
1063-
Error_Handler();
1064-
}
10651035

10661036
if ((channel == 0) || (channel > (TIMER_CHANNELS + 1))) {
10671037
Error_Handler(); // only channel 1..4 have an interrupt
@@ -1198,14 +1168,6 @@ bool HardwareTimer::isRunningChannel(uint32_t channel)
11981168
int interrupt = getIT(channel);
11991169
bool ret;
12001170

1201-
if (LLChannel == -1) {
1202-
Error_Handler();
1203-
}
1204-
1205-
if (interrupt == -1) {
1206-
Error_Handler();
1207-
}
1208-
12091171
// channel is running if: timer is running, and either output channel is
12101172
// enabled or interrupt is set
12111173
ret = LL_TIM_CC_IsEnabledChannel(_timerObj.handle.Instance, LLChannel)

0 commit comments

Comments
 (0)