From f7d7ec2070b50ac34091508e758e5193b8c579db Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Tue, 15 Nov 2022 10:13:54 +0100 Subject: [PATCH] chore(hal): streamline rotary encoder definitions (#2550) --- .../src/targets/common/arm/stm32/rotary_encoder_driver.cpp | 4 ++-- radio/src/targets/horus/hal.h | 4 ++++ radio/src/targets/taranis/hal.h | 6 ++++++ 3 files changed, 12 insertions(+), 2 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 08e6ae4ec..271a24a37 100644 --- a/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp +++ b/radio/src/targets/common/arm/stm32/rotary_encoder_driver.cpp @@ -91,7 +91,7 @@ void rotaryEncoderCheck() static uint8_t state = 0; uint8_t pins = ROTARY_ENCODER_POSITION(); -#if (defined(RADIO_FAMILY_T16) && !defined(RADIO_T18)) || defined(RADIO_TX12) +#if defined(ROTARY_ENCODER_SUPPORT_BUGGY_WIRING) if (pins != (state & 0x03) && !(readKeys() & (1 << KEY_ENTER))) { if ((pins ^ (state & 0x03)) == 0x03) { if (pins == 3) { @@ -111,7 +111,7 @@ void rotaryEncoderCheck() } #else if (pins != state && !(readKeys() & (1 << KEY_ENTER))) { -#if defined(RADIO_ZORRO) || defined(RADIO_TX12MK2) // def. rotation dir is inverse of other radios +#if defined(ROTARY_ENCODER_INVERTED) if (!(state & 0x01) ^ ((pins & 0x02) >> 1)) { #else if ((state & 0x01) ^ ((pins & 0x02) >> 1)) { diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index a279b256f..1ac60da8e 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -92,6 +92,10 @@ #define ROTARY_ENCODER_TIMER_IRQn TIM4_IRQn #define ROTARY_ENCODER_TIMER_IRQHandler TIM4_IRQHandler +#if defined(RADIO_FAMILY_T16) && !defined(RADIO_T18) + #define ROTARY_ENCODER_SUPPORT_BUGGY_WIRING +#endif + // Switches #define STORAGE_SWITCH_A #define HARDWARE_SWITCH_A diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index b7c8b5fa9..f8a6f4fd8 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -249,6 +249,12 @@ #define ROTARY_ENCODER_EXTI_PortSource EXTI_PortSourceGPIOE #define ROTARY_ENCODER_EXTI_PinSource1 EXTI_PinSource9 #define ROTARY_ENCODER_EXTI_PinSource2 EXTI_PinSource10 + #if defined(RADIO_TX12) + #define ROTARY_ENCODER_SUPPORT_BUGGY_WIRING + #endif + #if defined(RADIO_TX12MK2) || defined(RADIO_ZORRO) + #define ROTARY_ENCODER_INVERTED + #endif #endif #if defined(ROTARY_ENCODER_NAVIGATION)