diff --git a/cores/arduino/HardwareTimer.cpp b/cores/arduino/HardwareTimer.cpp index d26e8342b8..3df3d12f0e 100644 --- a/cores/arduino/HardwareTimer.cpp +++ b/cores/arduino/HardwareTimer.cpp @@ -371,7 +371,6 @@ void HardwareTimer::resumeChannel(uint32_t channel) } } break; - case TIMER_OUTPUT_COMPARE: case TIMER_OUTPUT_COMPARE_ACTIVE: case TIMER_OUTPUT_COMPARE_INACTIVE: case TIMER_OUTPUT_COMPARE_TOGGLE: @@ -406,6 +405,7 @@ void HardwareTimer::resumeChannel(uint32_t channel) } break; case TIMER_NOT_USED: + case TIMER_OUTPUT_COMPARE: default : break; } @@ -598,9 +598,6 @@ void HardwareTimer::setMode(uint32_t channel, TimerModes_t mode, PinName pin) Error_Handler(); } - // Save channel selected mode to object attribute - _ChannelMode[channel - 1] = mode; - /* Configure some default values. Maybe overwritten later */ channelOC.OCMode = TIMER_NOT_USED; channelOC.Pulse = __HAL_TIM_GET_COMPARE(&(_timerObj.handle), timChannel); // keep same value already written in hardware setMode(1, TIMER_OUTPUT_COMPARE, NC); TimerTone->setOverflow(timFreq, HERTZ_FORMAT); TimerTone->attachInterrupt(tonePeriodElapsedCallback); TimerTone->resume(); diff --git a/libraries/Servo/src/stm32/Servo.cpp b/libraries/Servo/src/stm32/Servo.cpp index 41c77c7584..850ca74f54 100644 --- a/libraries/Servo/src/stm32/Servo.cpp +++ b/libraries/Servo/src/stm32/Servo.cpp @@ -80,7 +80,6 @@ static void TimerServoInit() // prescaler is computed so that timer tick correspond to 1 microseconde uint32_t prescaler = TimerServo.getTimerClkFreq() / 1000000; - TimerServo.setMode(1, TIMER_OUTPUT_COMPARE, NC); TimerServo.setPrescaleFactor(prescaler); TimerServo.setOverflow(REFRESH_INTERVAL); // thanks to prescaler Tick = microsec TimerServo.attachInterrupt(Servo_PeriodElapsedCallback);