diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index db1421add..5ea54d0f2 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -263,12 +263,11 @@ void generalDefault() g_eeGeneral.contrast = 25; #if defined(PCBTARANIS) - g_eeGeneral.potsConfig = 0x05; // S1 and S2 = pots with detent + g_eeGeneral.potsConfig = 0x05; // S1 and S2 = pots with detent + g_eeGeneral.slidersConfig = 0x03; // LS and RS = sliders with detent #endif -#if defined(PCBTARANIS) && defined(REV9E) - g_eeGeneral.switchConfig = 0x00007fbf; // 6x3POS, 1x2POS, 1xTOGGLE -#elif defined(PCBTARANIS) +#if defined(PCBTARANIS) g_eeGeneral.switchConfig = 0x00007bff; // 6x3POS, 1x2POS, 1xTOGGLE #endif diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp index 6734343f1..bd255d8a4 100644 --- a/radio/src/targets/simu/simpgmspace.cpp +++ b/radio/src/targets/simu/simpgmspace.cpp @@ -196,9 +196,9 @@ void simuSetSwitch(uint8_t swtch, int8_t state) SWITCH_3_CASE(0, SWITCHES_GPIO_REG_A_L, SWITCHES_GPIO_REG_A_H, SWITCHES_GPIO_PIN_A_L, SWITCHES_GPIO_PIN_A_H) SWITCH_3_CASE(1, SWITCHES_GPIO_REG_B_L, SWITCHES_GPIO_REG_B_H, SWITCHES_GPIO_PIN_B_L, SWITCHES_GPIO_PIN_B_H) SWITCH_3_CASE(2, SWITCHES_GPIO_REG_C_L, SWITCHES_GPIO_REG_C_H, SWITCHES_GPIO_PIN_C_L, SWITCHES_GPIO_PIN_C_H) - SWITCH_CASE(3, SWITCHES_GPIO_REG_D, SWITCHES_GPIO_PIN_D) + SWITCH_3_CASE(3, SWITCHES_GPIO_REG_D_L, SWITCHES_GPIO_REG_D_H, SWITCHES_GPIO_PIN_D_L, SWITCHES_GPIO_PIN_D_H) SWITCH_3_CASE(4, SWITCHES_GPIO_REG_E_L, SWITCHES_GPIO_REG_E_H, SWITCHES_GPIO_PIN_E_L, SWITCHES_GPIO_PIN_E_H) - SWITCH_3_CASE(5, SWITCHES_GPIO_REG_F_L, SWITCHES_GPIO_REG_F_H, SWITCHES_GPIO_PIN_F_L, SWITCHES_GPIO_PIN_F_H) + SWITCH_CASE(5, SWITCHES_GPIO_REG_F, SWITCHES_GPIO_PIN_F) SWITCH_3_CASE(6, SWITCHES_GPIO_REG_G_L, SWITCHES_GPIO_REG_G_H, SWITCHES_GPIO_PIN_G_L, SWITCHES_GPIO_PIN_G_H) SWITCH_CASE(7, SWITCHES_GPIO_REG_H, SWITCHES_GPIO_PIN_H) SWITCH_3_CASE(8, SWITCHES_GPIO_REG_I_L, SWITCHES_GPIO_REG_I_H, SWITCHES_GPIO_PIN_I_L, SWITCHES_GPIO_PIN_I_H) diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 96a8680c2..2e2d2efd3 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -65,10 +65,10 @@ // Switches #if defined(REV9E) - #define SWITCHES_GPIO_REG_A_H GPIOE->IDR - #define SWITCHES_GPIO_PIN_A_H GPIO_Pin_7 // PE.07 - #define SWITCHES_GPIO_REG_A_L GPIOE->IDR - #define SWITCHES_GPIO_PIN_A_L GPIO_Pin_13 // PE.13 + #define SWITCHES_GPIO_REG_A_H GPIOD->IDR + #define SWITCHES_GPIO_PIN_A_H GPIO_Pin_10 // PD.10 + #define SWITCHES_GPIO_REG_A_L GPIOD->IDR + #define SWITCHES_GPIO_PIN_A_L GPIO_Pin_14 // PD.14 #else #define SWITCHES_GPIO_REG_A_H GPIOB->IDR #define SWITCHES_GPIO_PIN_A_H GPIO_Pin_5 // PB.05 @@ -77,10 +77,10 @@ #endif #if defined(REV9E) - #define SWITCHES_GPIO_REG_B_H GPIOD->IDR - #define SWITCHES_GPIO_PIN_B_H GPIO_Pin_10 // PD.10 - #define SWITCHES_GPIO_REG_B_L GPIOD->IDR - #define SWITCHES_GPIO_PIN_B_L GPIO_Pin_14 // PD.14 + #define SWITCHES_GPIO_REG_B_H GPIOG->IDR + #define SWITCHES_GPIO_PIN_B_H GPIO_Pin_11 // PG.11 + #define SWITCHES_GPIO_REG_B_L GPIOG->IDR + #define SWITCHES_GPIO_PIN_B_L GPIO_Pin_10 // PG.10 #else #define SWITCHES_GPIO_REG_B_H GPIOE->IDR #define SWITCHES_GPIO_PIN_B_H GPIO_Pin_1 // PE.01 @@ -89,10 +89,10 @@ #endif #if defined(REV9E) - #define SWITCHES_GPIO_REG_C_H GPIOG->IDR - #define SWITCHES_GPIO_PIN_C_H GPIO_Pin_11 // PG.11 - #define SWITCHES_GPIO_REG_C_L GPIOG->IDR - #define SWITCHES_GPIO_PIN_C_L GPIO_Pin_10 // PG.10 + #define SWITCHES_GPIO_REG_C_H GPIOF->IDR + #define SWITCHES_GPIO_PIN_C_H GPIO_Pin_13 // PF.13 + #define SWITCHES_GPIO_REG_C_L GPIOF->IDR + #define SWITCHES_GPIO_PIN_C_L GPIO_Pin_14 // PF.14 #else #define SWITCHES_GPIO_REG_C_H GPIOE->IDR #define SWITCHES_GPIO_PIN_C_H GPIO_Pin_15 // PE.15 @@ -101,8 +101,10 @@ #endif #if defined(REV9E) - #define SWITCHES_GPIO_REG_D GPIOE->IDR - #define SWITCHES_GPIO_PIN_D GPIO_Pin_11 // PE.11 + #define SWITCHES_GPIO_REG_D_H GPIOE->IDR + #define SWITCHES_GPIO_PIN_D_H GPIO_Pin_1 // PE.01 + #define SWITCHES_GPIO_REG_D_L GPIOE->IDR + #define SWITCHES_GPIO_PIN_D_L GPIO_Pin_2 // PE.02 #elif defined(REVPLUS) #define SWITCHES_GPIO_REG_D_H GPIOE->IDR #define SWITCHES_GPIO_PIN_D_H GPIO_Pin_7 // PE.07 @@ -116,10 +118,10 @@ #endif #if defined(REV9E) - #define SWITCHES_GPIO_REG_E_H GPIOF->IDR - #define SWITCHES_GPIO_PIN_E_H GPIO_Pin_3 // PF.03 - #define SWITCHES_GPIO_REG_E_L GPIOF->IDR - #define SWITCHES_GPIO_PIN_E_L GPIO_Pin_4 // PF.04 + #define SWITCHES_GPIO_REG_E_H GPIOE->IDR + #define SWITCHES_GPIO_PIN_E_H GPIO_Pin_7 // PE.07 + #define SWITCHES_GPIO_REG_E_L GPIOE->IDR + #define SWITCHES_GPIO_PIN_E_L GPIO_Pin_13 // PE.13 #else #define SWITCHES_GPIO_REG_E_L GPIOB->IDR #define SWITCHES_GPIO_PIN_E_L GPIO_Pin_3 // PB.03 @@ -128,10 +130,8 @@ #endif #if defined(REV9E) - #define SWITCHES_GPIO_REG_F_L GPIOE->IDR - #define SWITCHES_GPIO_PIN_F_L GPIO_Pin_2 // PE.02 - #define SWITCHES_GPIO_REG_F_H GPIOE->IDR - #define SWITCHES_GPIO_PIN_F_H GPIO_Pin_1 // PE.01 + #define SWITCHES_GPIO_REG_F GPIOE->IDR + #define SWITCHES_GPIO_PIN_F GPIO_Pin_11 // PE.11 #else #define SWITCHES_GPIO_REG_F GPIOE->IDR #define SWITCHES_GPIO_PIN_F GPIO_Pin_14 // PE.14 @@ -139,9 +139,9 @@ #if defined(REV9E) #define SWITCHES_GPIO_REG_G_H GPIOF->IDR - #define SWITCHES_GPIO_PIN_G_H GPIO_Pin_13 // PF.13 + #define SWITCHES_GPIO_PIN_G_H GPIO_Pin_3 // PF.03 #define SWITCHES_GPIO_REG_G_L GPIOF->IDR - #define SWITCHES_GPIO_PIN_G_L GPIO_Pin_14 // PF.14 + #define SWITCHES_GPIO_PIN_G_L GPIO_Pin_4 // PF.04 #else #define SWITCHES_GPIO_REG_G_H GPIOE->IDR #define SWITCHES_GPIO_PIN_G_H GPIO_Pin_9 // PE.09 @@ -209,7 +209,7 @@ #define KEYS_GPIOB_PINS (SWITCHES_GPIO_PIN_N_H | SWITCHES_GPIO_PIN_N_L | SWITCHES_GPIO_PIN_R_H) #define KEYS_GPIOC_PINS (TRIMS_GPIO_PIN_RVD | TRIMS_GPIO_PIN_RVU | TRIMS_GPIO_PIN_RHL | TRIMS_GPIO_PIN_RHR) #define KEYS_GPIOD_PINS (KEYS_GPIO_PIN_MENU | KEYS_GPIO_PIN_EXIT | KEYS_GPIO_PIN_PAGE | SWITCHES_GPIO_PIN_B_H | SWITCHES_GPIO_PIN_B_L) - #define KEYS_GPIOE_PINS (TRIMS_GPIO_PIN_LVU | TRIMS_GPIO_PIN_LVD | SWITCHES_GPIO_PIN_A_H | SWITCHES_GPIO_PIN_A_L | SWITCHES_GPIO_PIN_D | SWITCHES_GPIO_PIN_F_L | SWITCHES_GPIO_PIN_F_H | SWITCHES_GPIO_PIN_I_L | SWITCHES_GPIO_PIN_L_H | SWITCHES_GPIO_PIN_L_L | SWITCHES_GPIO_PIN_M_H | SWITCHES_GPIO_PIN_O_L | SWITCHES_GPIO_PIN_R_L) + #define KEYS_GPIOE_PINS (TRIMS_GPIO_PIN_LVU | TRIMS_GPIO_PIN_LVD | SWITCHES_GPIO_PIN_A_H | SWITCHES_GPIO_PIN_A_L | SWITCHES_GPIO_PIN_I_L | SWITCHES_GPIO_PIN_L_H | SWITCHES_GPIO_PIN_L_L | SWITCHES_GPIO_PIN_M_H | SWITCHES_GPIO_PIN_O_L | SWITCHES_GPIO_PIN_R_L) #define KEYS_GPIOF_PINS (KEYS_GPIO_PIN_ENTER | SWITCHES_GPIO_PIN_E_H | SWITCHES_GPIO_PIN_E_L | SWITCHES_GPIO_PIN_G_H | SWITCHES_GPIO_PIN_G_L | SWITCHES_GPIO_PIN_H | SWITCHES_GPIO_PIN_I_H | SWITCHES_GPIO_PIN_O_H | SWITCHES_GPIO_PIN_P_H | SWITCHES_GPIO_PIN_P_L | SWITCHES_GPIO_PIN_Q_H | SWITCHES_GPIO_PIN_Q_L) #define KEYS_GPIOG_PINS (TRIMS_GPIO_PIN_LHL | TRIMS_GPIO_PIN_LHR| SWITCHES_GPIO_PIN_C_H | SWITCHES_GPIO_PIN_C_L | SWITCHES_GPIO_PIN_J_H | SWITCHES_GPIO_PIN_J_L | SWITCHES_GPIO_PIN_K_H | SWITCHES_GPIO_PIN_K_L) #elif defined(REVPLUS) diff --git a/radio/src/targets/taranis/keys_driver.cpp b/radio/src/targets/taranis/keys_driver.cpp index 6b7e068e9..27988085d 100644 --- a/radio/src/targets/taranis/keys_driver.cpp +++ b/radio/src/targets/taranis/keys_driver.cpp @@ -131,18 +131,15 @@ void readKeysAndTrims() } } -#if !defined(BOOT) - -#define ADD_2POS_CASE(x) \ - case SW_S ## x ## 0: \ +#if defined(REV9E) + #define ADD_2POS_CASE(x) \ + case SW_S ## x ## 2: \ xxx = SWITCHES_GPIO_REG_ ## x & SWITCHES_GPIO_PIN_ ## x ; \ break; \ - case SW_S ## x ## 2: \ + case SW_S ## x ## 0: \ xxx = ~SWITCHES_GPIO_REG_ ## x & SWITCHES_GPIO_PIN_ ## x ; \ break - -#if defined(REV9E) -#define ADD_3POS_CASE(x, i) \ + #define ADD_3POS_CASE(x, i) \ case SW_S ## x ## 0: \ xxx = (SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H) && (~SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ break; \ @@ -152,9 +149,16 @@ void readKeysAndTrims() case SW_S ## x ## 2: \ xxx = (~SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H) && (SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ break -#define ADD_3POS_INVERTED_CASE(x, i) ADD_3POS_CASE(x, i) + #define ADD_3POS_INVERTED_CASE(x, i) ADD_3POS_CASE(x, i) #else -#define ADD_3POS_CASE(x, i) \ + #define ADD_2POS_CASE(x) \ + case SW_S ## x ## 0: \ + xxx = SWITCHES_GPIO_REG_ ## x & SWITCHES_GPIO_PIN_ ## x ; \ + break; \ + case SW_S ## x ## 2: \ + xxx = ~SWITCHES_GPIO_REG_ ## x & SWITCHES_GPIO_PIN_ ## x ; \ + break + #define ADD_3POS_CASE(x, i) \ case SW_S ## x ## 0: \ xxx = (SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H); \ if (IS_3POS(i)) { \ @@ -170,7 +174,7 @@ void readKeysAndTrims() xxx = xxx && (SWITCHES_GPIO_REG_ ## x ## _L & SWITCHES_GPIO_PIN_ ## x ## _L); \ } \ break -#define ADD_3POS_INVERTED_CASE(x, i) \ + #define ADD_3POS_INVERTED_CASE(x, i) \ case SW_S ## x ## 0: \ xxx = (~SWITCHES_GPIO_REG_ ## x ## _H & SWITCHES_GPIO_PIN_ ## x ## _H); \ if (IS_3POS(i)) { \ @@ -188,6 +192,7 @@ void readKeysAndTrims() break #endif +#if !defined(BOOT) bool switchState(EnumKeys enuk) { register uint32_t xxx = 0; @@ -198,17 +203,9 @@ bool switchState(EnumKeys enuk) ADD_3POS_CASE(A, 0); ADD_3POS_CASE(B, 1); ADD_3POS_CASE(C, 2); -#if defined(REV9E) - ADD_2POS_CASE(D); -#else ADD_3POS_CASE(D, 3); -#endif ADD_3POS_INVERTED_CASE(E, 4); -#if defined(REV9E) - ADD_3POS_CASE(F, 5); -#else ADD_2POS_CASE(F); -#endif ADD_3POS_CASE(G, 6); ADD_2POS_CASE(H); #if defined(REV9E)