From a8373c1752710aaade725ae894349776dcb13fc4 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 12 Jul 2019 00:45:36 +0200 Subject: [PATCH] Attempt to fix #6551 --- .../arm/stm32/rotary_encoder_driver.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp b/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp index 6a2445c44..fc028d3b5 100644 --- a/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp +++ b/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp @@ -24,6 +24,16 @@ uint8_t rotencPosition; void rotaryEncoderInit() { + rotencPosition = ROTARY_ENCODER_POSITION(); + + ROTARY_ENCODER_TIMER->ARR = 99; // 100uS + ROTARY_ENCODER_TIMER->PSC = (PERI1_FREQUENCY * TIMER_MULT_APB1) / 1000000 - 1; // 1uS + ROTARY_ENCODER_TIMER->CCER = 0; + ROTARY_ENCODER_TIMER->CCMR1 = 0; + ROTARY_ENCODER_TIMER->EGR = 0; + ROTARY_ENCODER_TIMER->CR1 = 0; + ROTARY_ENCODER_TIMER->DIER |= TIM_DIER_UIE; + SYSCFG_EXTILineConfig(ROTARY_ENCODER_EXTI_PortSource, ROTARY_ENCODER_EXTI_PinSource1); #if defined(ROTARY_ENCODER_EXTI_LINE2) @@ -55,15 +65,6 @@ void rotaryEncoderInit() NVIC_Init(&NVIC_InitStructure); #endif - rotencPosition = ROTARY_ENCODER_POSITION(); - - ROTARY_ENCODER_TIMER->ARR = 99; // 100uS - ROTARY_ENCODER_TIMER->PSC = (PERI1_FREQUENCY * TIMER_MULT_APB1) / 1000000 - 1; // 1uS - ROTARY_ENCODER_TIMER->CCER = 0; - ROTARY_ENCODER_TIMER->CCMR1 = 0; - ROTARY_ENCODER_TIMER->EGR = 0; - ROTARY_ENCODER_TIMER->CR1 = 0; - ROTARY_ENCODER_TIMER->DIER |= TIM_DIER_UIE; NVIC_EnableIRQ(ROTARY_ENCODER_TIMER_IRQn); NVIC_SetPriority(ROTARY_ENCODER_TIMER_IRQn, 7); }