Skip to content

Commit 29f0f68

Browse files
committed
chore(hardwaretimer): rename TIMER_DISABLED to TIMER_OUTPUT_DISABLED
to avoid confusion. Signed-off-by: Frederic Pillon <[email protected]>
1 parent 796cbc2 commit 29f0f68

File tree

3 files changed

+26
-39
lines changed

3 files changed

+26
-39
lines changed

keywords.txt

+1-2
Original file line numberDiff line numberDiff line change
@@ -862,8 +862,7 @@ GPIO_PIN_14 LITERAL1
862862
GPIO_PIN_15 LITERAL1
863863

864864
# HardwareTimer
865-
TIMER_DISABLED LITERAL1
866-
TIMER_OUTPUT_COMPARE LITERAL1
865+
TIMER_OUTPUT_DISABLED LITERAL1
867866
TIMER_OUTPUT_COMPARE_ACTIVE LITERAL1
868867
TIMER_OUTPUT_COMPARE_INACTIVE LITERAL1
869868
TIMER_OUTPUT_COMPARE_TOGGLE LITERAL1

libraries/SrcWrapper/inc/HardwareTimer.h

+5-2
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@
3636
#define TIMER_CHANNELS 4 // channel5 and channel 6 are not considered here has they don't have gpio output and they don't have interrupt
3737

3838
typedef enum {
39-
TIMER_DISABLED, // == TIM_OCMODE_TIMING no output, useful for only-interrupt
39+
TIMER_OUTPUT_DISABLED, // == TIM_OCMODE_TIMING no output, useful for only-interrupt
4040
// Output Compare
41-
TIMER_OUTPUT_COMPARE, // == Obsolete, use TIMER_DISABLED instead. Kept for compatibility reason
4241
TIMER_OUTPUT_COMPARE_ACTIVE, // == TIM_OCMODE_ACTIVE pin is set high when counter == channel compare
4342
TIMER_OUTPUT_COMPARE_INACTIVE, // == TIM_OCMODE_INACTIVE pin is set low when counter == channel compare
4443
TIMER_OUTPUT_COMPARE_TOGGLE, // == TIM_OCMODE_TOGGLE pin toggles when counter == channel compare
@@ -60,6 +59,10 @@ typedef enum {
6059
TIMER_NOT_USED = 0xFFFF // This must be the last item of this enum
6160
} TimerModes_t;
6261

62+
// Backward compatibility
63+
#define TIMER_DISABLED TIMER_OUTPUT_DISABLED
64+
#define TIMER_OUTPUT_COMPARE TIMER_OUTPUT_DISABLED
65+
6366
typedef enum {
6467
TICK_FORMAT, // default
6568
MICROSEC_FORMAT,

libraries/SrcWrapper/src/HardwareTimer.cpp

+20-35
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ void HardwareTimer::setup(TIM_TypeDef *instance)
123123
// Initialize channel mode and complementary
124124
for (int i = 0; i < TIMER_CHANNELS; i++) {
125125
__ChannelsUsed[i] = 0x00;
126-
_ChannelMode[i] = TIMER_DISABLED;
126+
_ChannelMode[i] = TIMER_OUTPUT_DISABLED;
127127
}
128128

129129
/* Configure timer with some default values */
@@ -438,8 +438,7 @@ void HardwareTimer::resumeChannel(uint32_t channel)
438438
HAL_TIM_IC_Start(&(_timerObj.handle), timChannel);
439439
}
440440
break;
441-
case TIMER_OUTPUT_COMPARE:
442-
case TIMER_DISABLED:
441+
case TIMER_OUTPUT_DISABLED:
443442
if (!LL_TIM_IsEnabledCounter(_timerObj.handle.Instance)) {
444443
HAL_TIM_Base_Start(&(_timerObj.handle));
445444
}
@@ -657,21 +656,10 @@ void HardwareTimer::setMode(uint32_t channel, TimerModes_t mode, PinName pin, Ch
657656
channelIC.ICFilter = filter;
658657

659658
switch (mode) {
660-
case TIMER_DISABLED:
659+
case TIMER_OUTPUT_DISABLED:
661660
channelOC.OCMode = TIM_OCMODE_TIMING;
662661
HAL_TIM_OC_ConfigChannel(&(_timerObj.handle), &channelOC, timChannel);
663662
break;
664-
case TIMER_OUTPUT_COMPARE:
665-
/* In case of TIMER_OUTPUT_COMPARE, there is no output and thus no pin to
666-
* configure, and no channel. So nothing to do. For compatibility reason
667-
* restore TIMER_DISABLED if necessary.
668-
*/
669-
if (_ChannelMode[channel - 1] != TIMER_DISABLED) {
670-
_ChannelMode[channel - 1] = TIMER_DISABLED;
671-
channelOC.OCMode = TIM_OCMODE_TIMING;
672-
HAL_TIM_OC_ConfigChannel(&(_timerObj.handle), &channelOC, timChannel);
673-
}
674-
return;
675663
case TIMER_OUTPUT_COMPARE_ACTIVE:
676664
channelOC.OCMode = TIM_OCMODE_ACTIVE;
677665
HAL_TIM_OC_ConfigChannel(&(_timerObj.handle), &channelOC, timChannel);
@@ -738,24 +726,25 @@ void HardwareTimer::setMode(uint32_t channel, TimerModes_t mode, PinName pin, Ch
738726

739727
// Save channel selected mode to object attribute
740728
_ChannelMode[channel - 1] = mode;
741-
742-
if (pin != NC) {
743-
if (getTimerChannel(pin) == timChannel) {
744-
/* Configure PWM GPIO pins */
745-
pinmap_pinout(pin, PinMap_TIM);
729+
if (mode != TIMER_OUTPUT_DISABLED) {
730+
if (pin != NC) {
731+
if (getTimerChannel(pin) == timChannel) {
732+
/* Configure PWM GPIO pins */
733+
pinmap_pinout(pin, PinMap_TIM);
746734
#if defined(STM32F1xx)
747-
if ((mode == TIMER_INPUT_CAPTURE_RISING) || (mode == TIMER_INPUT_CAPTURE_FALLING) \
748-
|| (mode == TIMER_INPUT_CAPTURE_BOTHEDGE) || (mode == TIMER_INPUT_FREQ_DUTY_MEASUREMENT)) {
749-
// on F1 family, input alternate function must configure GPIO in input mode
750-
pinMode(pinNametoDigitalPin(pin), INPUT);
751-
}
735+
if ((mode == TIMER_INPUT_CAPTURE_RISING) || (mode == TIMER_INPUT_CAPTURE_FALLING) \
736+
|| (mode == TIMER_INPUT_CAPTURE_BOTHEDGE) || (mode == TIMER_INPUT_FREQ_DUTY_MEASUREMENT)) {
737+
// on F1 family, input alternate function must configure GPIO in input mode
738+
pinMode(pinNametoDigitalPin(pin), INPUT);
739+
}
752740
#endif
753-
} else {
754-
// Pin doesn't match with timer output channels
755-
Error_Handler();
756-
}
741+
} else {
742+
// Pin doesn't match with timer output channels
743+
Error_Handler();
744+
}
757745

758-
__ChannelsUsed[channel - 1] |= (STM_PIN_INVERTED(pinmap_function(pin, PinMap_TIM))) ? COMPLEMENTARY_CHAN_MASK : REGULAR_CHAN_MASK;
746+
__ChannelsUsed[channel - 1] |= (STM_PIN_INVERTED(pinmap_function(pin, PinMap_TIM))) ? COMPLEMENTARY_CHAN_MASK : REGULAR_CHAN_MASK;
747+
}
759748
}
760749
}
761750

@@ -766,11 +755,7 @@ void HardwareTimer::setMode(uint32_t channel, TimerModes_t mode, PinName pin, Ch
766755
*/
767756
TimerModes_t HardwareTimer::getMode(uint32_t channel)
768757
{
769-
if ((1 <= channel) && (channel <= TIMER_CHANNELS)) {
770-
return _ChannelMode[channel - 1];
771-
} else {
772-
return TIMER_DISABLED;
773-
}
758+
return ((1 <= channel) && (channel <= TIMER_CHANNELS)) ? _ChannelMode[channel - 1] : TIMER_OUTPUT_DISABLED;
774759
}
775760

776761
/**

0 commit comments

Comments
 (0)