From d2730b040c9be0a669bcaaff229dc645549a0c4e Mon Sep 17 00:00:00 2001 From: 3djc <3djc@gh.com> Date: Sun, 19 May 2024 09:11:54 +0200 Subject: [PATCH] fix: missing timer init --- .../targets/common/arm/stm32/stm32_timer.cpp | 38 +++++++++++++++++-- radio/src/targets/horus/board.cpp | 2 +- radio/src/targets/taranis/hal.h | 5 +-- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/radio/src/targets/common/arm/stm32/stm32_timer.cpp b/radio/src/targets/common/arm/stm32/stm32_timer.cpp index caabf7a1157..4639f28d2c2 100644 --- a/radio/src/targets/common/arm/stm32/stm32_timer.cpp +++ b/radio/src/targets/common/arm/stm32/stm32_timer.cpp @@ -33,8 +33,18 @@ void stm32_timer_enable_clock(TIM_TypeDef *TIMx) LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM4); } else if (TIMx == TIM5) { LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM5); + } else if (TIMx == TIM6) { + LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM6); + } else if (TIMx == TIM7) { + LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM7); } else if (TIMx == TIM8) { LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM8); + } else if (TIMx == TIM9) { + LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM9); + } else if (TIMx == TIM10) { + LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM10); + } else if (TIMx == TIM11) { + LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM11); } else if (TIMx == TIM12) { LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM12); } else if (TIMx == TIM13) { @@ -56,15 +66,25 @@ void stm32_timer_disable_clock(TIM_TypeDef *TIMx) LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM4); } else if (TIMx == TIM5) { LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM5); + } else if (TIMx == TIM6) { + LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM6); + } else if (TIMx == TIM7) { + LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM7); } else if (TIMx == TIM8) { LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM8); + } else if (TIMx == TIM9) { + LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM9); + } else if (TIMx == TIM10) { + LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM10); + } else if (TIMx == TIM11) { + LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM11); } else if (TIMx == TIM12) { LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM12); } else if (TIMx == TIM13) { LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM13); } else if (TIMx == TIM14) { LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM14); - } + } } bool stm32_timer_is_clock_enabled(TIM_TypeDef *TIMx) @@ -79,14 +99,24 @@ bool stm32_timer_is_clock_enabled(TIM_TypeDef *TIMx) return LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM4) != 0; } else if (TIMx == TIM5) { return LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM5) != 0; + } else if (TIMx == TIM6) { + return LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM6) != 0; + } else if (TIMx == TIM7) { + return LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM7) != 0; } else if (TIMx == TIM8) { return LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM8) != 0; + } else if (TIMx == TIM9) { + return LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM9) != 0; + } else if (TIMx == TIM10) { + return LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM10) != 0; + } else if (TIMx == TIM11) { + return LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM11) != 0; } else if (TIMx == TIM12) { - return LL_APB2_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM12) != 0; + return LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM12) != 0; } else if (TIMx == TIM13) { - return LL_APB2_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM13) != 0; + return LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM13) != 0; } else if (TIMx == TIM14) { - return LL_APB2_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM14) != 0; + return LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM14) != 0; } // not supported diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index b1da06804b1..51b837db5d6 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -116,7 +116,7 @@ void boardInit() #if defined(DEBUG) - DBGMCU_APB1PeriphConfig(DBGMCU_IWDG_STOP|DBGMCU_TIM1_STOP|DBGMCU_TIM2_STOP|DBGMCU_TIM3_STOP|DBGMCU_TIM4_STOP|DBGMCU_TIM5_STOP|DBGMCU_TIM6_STOP|DBGMCU_TIM7_STOP|DBGMCU_TIM8_STOP|DBGMCU_TIM9_STOP|DBGMCU_TIM10_STOP|DBGMCU_TIM11_STOP|DBGMCU_TIM12_STOP|DBGMCU_TIM13_STOP|DBGMCU_TIM14_STOP, ENABLE); + // DBGMCU_APB1PeriphConfig(DBGMCU_IWDG_STOP|DBGMCU_TIM1_STOP|DBGMCU_TIM2_STOP|DBGMCU_TIM3_STOP|DBGMCU_TIM4_STOP|DBGMCU_TIM5_STOP|DBGMCU_TIM6_STOP|DBGMCU_TIM7_STOP|DBGMCU_TIM8_STOP|DBGMCU_TIM9_STOP|DBGMCU_TIM10_STOP|DBGMCU_TIM11_STOP|DBGMCU_TIM12_STOP|DBGMCU_TIM13_STOP|DBGMCU_TIM14_STOP, ENABLE); #endif ledInit(); diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 3ab7d415a5f..bbaa0adc269 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -2581,7 +2581,7 @@ #define HAPTIC_PWM #define HAPTIC_GPIO GPIO_PIN(GPIOB, 3) // PB.03 #define HAPTIC_GPIO_AF GPIO_AF1 - #define HAPTIC_TIMER TIM2 + #define HAPTIC_TIMER TIM2 // Timer 2 Channel1 #define HAPTIC_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1) #define HAPTIC_COUNTER_REGISTER HAPTIC_TIMER->CCR2 #define HAPTIC_CCMR1 TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 @@ -2589,7 +2589,6 @@ #define BACKLIGHT_BDTR TIM_BDTR_MOE #elif defined(RADIO_X9DP2019) || defined(RADIO_X7ACCESS) #define HAPTIC_PWM - #define HAPTIC_GPIO_PinSource GPIO_PinSource10 #define HAPTIC_GPIO GPIO_PIN(GPIOA, 10) // PA.10 #define HAPTIC_GPIO_AF GPIO_AF1 #define HAPTIC_TIMER TIM1 // Timer1 Channel3 @@ -2601,7 +2600,7 @@ #define HAPTIC_PWM #define HAPTIC_GPIO GPIO_PIN(GPIOB, 8) // PB.08 #define HAPTIC_GPIO_AF GPIO_AF3 - #define HAPTIC_TIMER TIM10 + #define HAPTIC_TIMER TIM10 // Timer 10 Channel1 #define HAPTIC_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2) #define HAPTIC_COUNTER_REGISTER HAPTIC_TIMER->CCR1 #define HAPTIC_CCMR1 TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2