1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-21 23:35:17 +03:00

Switches refactoring (#6454)

Switches refactoring
This commit is contained in:
3djc 2019-05-27 15:58:16 +02:00 committed by Bertrand Songis
parent ac1bb2c376
commit 5411b785a9
7 changed files with 107 additions and 28 deletions

View file

@ -370,112 +370,121 @@ enum SwitchSources {
SWSRC_FIRST_SWITCH,
#if defined(PCBHORUS) || defined(PCBTARANIS)
#if defined(STORAGE_SWITCH_A)
SWSRC_SA0 = SWSRC_FIRST_SWITCH,
SWSRC_SA1,
SWSRC_SA2,
#endif
#if defined(STORAGE_SWITCH_B)
SWSRC_SB0,
SWSRC_SB1,
SWSRC_SB2,
#endif
#if defined(STORAGE_SWITCH_C)
SWSRC_SC0,
SWSRC_SC1,
SWSRC_SC2,
#endif
#if defined(STORAGE_SWITCH_D)
SWSRC_SD0,
SWSRC_SD1,
SWSRC_SD2,
#endif
#if defined(HARDWARE_SWITCH_E)
#if defined(STORAGE_SWITCH_E)
SWSRC_SE0,
SWSRC_SE1,
SWSRC_SE2,
#endif
#if defined(HARDWARE_SWITCH_F)
#if defined(STORAGE_SWITCH_F)
SWSRC_SF0,
SWSRC_SF1,
SWSRC_SF2,
#endif
#if defined(HARDWARE_SWITCH_G)
#if defined(STORAGE_SWITCH_G)
SWSRC_SG0,
SWSRC_SG1,
SWSRC_SG2,
#endif
#if defined(HARDWARE_SWITCH_H)
#if defined(STORAGE_SWITCH_H)
SWSRC_SH0,
SWSRC_SH1,
SWSRC_SH2,
#endif
#if defined(HARDWARE_SWITCH_I)
#if defined(STORAGE_SWITCH_I)
SWSRC_SI0,
SWSRC_SI1,
SWSRC_SI2,
#endif
#if defined(HARDWARE_SWITCH_J)
#if defined(STORAGE_SWITCH_J)
SWSRC_SJ0,
SWSRC_SJ1,
SWSRC_SJ2,
#endif
#if defined(HARDWARE_SWITCH_K)
#if defined(STORAGE_SWITCH_K)
SWSRC_SK0,
SWSRC_SK1,
SWSRC_SK2,
#endif
#if defined(HARDWARE_SWITCH_L)
#if defined(STORAGE_SWITCH_L)
SWSRC_SL0,
SWSRC_SL1,
SWSRC_SL2,
#endif
#if defined(HARDWARE_SWITCH_M)
#if defined(STORAGE_SWITCH_M)
SWSRC_SM0,
SWSRC_SM1,
SWSRC_SM2,
#endif
#if defined(HARDWARE_SWITCH_N)
#if defined(STORAGE_SWITCH_N)
SWSRC_SN0,
SWSRC_SN1,
SWSRC_SN2,
#endif
#if defined(HARDWARE_SWITCH_O)
#if defined(STORAGE_SWITCH_O)
SWSRC_SO0,
SWSRC_SO1,
SWSRC_SO2,
#endif
#if defined(HARDWARE_SWITCH_P)
#if defined(STORAGE_SWITCH_P)
SWSRC_SP0,
SWSRC_SP1,
SWSRC_SP2,
#endif
#if defined(HARDWARE_SWITCH_Q)
#if defined(STORAGE_SWITCH_Q)
SWSRC_SQ0,
SWSRC_SQ1,
SWSRC_SQ2,
#endif
#if defined(HARDWARE_SWITCH_R)
#if defined(STORAGE_SWITCH_R)
SWSRC_SR0,
SWSRC_SR1,
SWSRC_SR2,
#endif
#if defined(HARDWARE_SWITCH_GMBL)
#if defined(STORAGE_SWITCH_GMBL)
SWSRC_GMBL0,
SWSRC_GMBL1,
SWSRC_GMBL2,
#endif
#if defined(HARDWARE_SWITCH_GMBR)
#if defined(STORAGE_SWITCH_GMBR)
SWSRC_GMBR0,
SWSRC_GMBR1,
SWSRC_GMBR2,
@ -494,7 +503,7 @@ enum SwitchSources {
SWSRC_TRAINER = SWSRC_TRN,
SWSRC_LAST_SWITCH = SWSRC_TRN,
#else
SWSRC_LAST_SWITCH = SWSRC_FIRST_SWITCH + NUM_SWITCHES_POSITIONS - 1,
SWSRC_LAST_SWITCH = SWSRC_FIRST_SWITCH + STORAGE_NUM_SWITCHES_POSITIONS - 1,
#endif
#if NUM_XPOTS > 0

View file

@ -686,7 +686,7 @@ PACK(struct TrainerData {
uint8_t backlightColor; \
swarnstate_t switchUnlockStates; \
swconfig_t switchConfig; \
char switchNames[NUM_SWITCHES][LEN_SWITCH_NAME]; \
char switchNames[STORAGE_NUM_SWITCHES][LEN_SWITCH_NAME]; \
char anaNames[NUM_STICKS+NUM_POTS+NUM_SLIDERS][LEN_ANA_NAME]; \
BLUETOOTH_FIELDS
#elif defined(PCBSKY9X)
@ -699,7 +699,7 @@ PACK(struct TrainerData {
uint8_t optrexDisplay; \
uint8_t sticksGain; \
uint8_t rotarySteps; \
char switchNames[NUM_SWITCHES][LEN_SWITCH_NAME]; \
char switchNames[STORAGE_NUM_SWITCHES][LEN_SWITCH_NAME]; \
char anaNames[NUM_STICKS+NUM_POTS+NUM_SLIDERS][LEN_ANA_NAME];
#else
#define EXTRA_GENERAL_FIELDS
@ -909,7 +909,7 @@ static inline void check_struct()
CHKSIZE(RadioData, 860);
CHKSIZE(ModelData, 6157);
#elif defined(PCBXLITE)
CHKSIZE(RadioData, 852);
CHKSIZE(RadioData, 858);
CHKSIZE(ModelData, 6157);
#elif defined(PCBX7)
CHKSIZE(RadioData, 864);

View file

@ -285,7 +285,7 @@ enum EnumSwitches
NUM_SWITCHES
};
#define STORAGE_NUM_SWITCHES 10
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
#define IS_3POS(x) ((x) != SW_SF && (x) != SW_SH)
enum EnumSwitchesPositions
@ -320,12 +320,12 @@ enum EnumSwitchesPositions
SW_SGMBR0,
SW_SGMBR1,
SW_SGMBR2,
NUM_SWITCHES_POSITIONS
STORAGE_NUM_SWITCHES_POSITIONS
};
#if defined(__cplusplus)
static_assert(NUM_SWITCHES_POSITIONS == NUM_SWITCHES * 3, "Wrong switches positions count");
static_assert(STORAGE_NUM_SWITCHES_POSITIONS == NUM_SWITCHES * 3, "Wrong switches positions count");
#endif
void keysInit(void);

View file

@ -67,54 +67,66 @@
#define ROTARY_ENCODER_EXTI_PinSource2 EXTI_PinSource10
// Switches
#define STORAGE_SWITCH_A
#define HARDWARE_SWITCH_A
#define SWITCHES_GPIO_REG_A_H GPIOH->IDR
#define SWITCHES_GPIO_PIN_A_H GPIO_Pin_9 // PH.09
#define SWITCHES_GPIO_REG_A_L GPIOI->IDR
#define SWITCHES_GPIO_PIN_A_L GPIO_Pin_15 // PI.15
#define STORAGE_SWITCH_B
#define HARDWARE_SWITCH_B
#define SWITCHES_GPIO_REG_B_H GPIOH->IDR
#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_12 // PH.12
#define SWITCHES_GPIO_REG_B_L GPIOB->IDR
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_12 // PB.12
#define STORAGE_SWITCH_C
#define HARDWARE_SWITCH_C
#define SWITCHES_GPIO_REG_C_H GPIOD->IDR
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_11 // PD.11
#define SWITCHES_GPIO_REG_C_L GPIOB->IDR
#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_15 // PB.15
#define STORAGE_SWITCH_D
#define HARDWARE_SWITCH_D
#define SWITCHES_GPIO_REG_D_H GPIOJ->IDR
#define SWITCHES_GPIO_PIN_D_H GPIO_Pin_7 // PJ.07
#define SWITCHES_GPIO_REG_D_L GPIOG->IDR
#define SWITCHES_GPIO_PIN_D_L GPIO_Pin_2 // PG.02
#define STORAGE_SWITCH_E
#define HARDWARE_SWITCH_E
#define SWITCHES_GPIO_REG_E_H GPIOH->IDR
#define SWITCHES_GPIO_PIN_E_H GPIO_Pin_4 // PH.04
#define SWITCHES_GPIO_REG_E_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_E_L GPIO_Pin_3 // PE.03
#define STORAGE_SWITCH_F
#define HARDWARE_SWITCH_F
#define SWITCHES_GPIO_REG_F GPIOH->IDR
#define SWITCHES_GPIO_PIN_F GPIO_Pin_3 // PH.03
#define STORAGE_SWITCH_G
#define HARDWARE_SWITCH_G
#define SWITCHES_GPIO_REG_G_H GPIOG->IDR
#define SWITCHES_GPIO_PIN_G_H GPIO_Pin_6 // PG.06
#define SWITCHES_GPIO_REG_G_L GPIOG->IDR
#define SWITCHES_GPIO_PIN_G_L GPIO_Pin_3 // PG.03
#define STORAGE_SWITCH_H
#define HARDWARE_SWITCH_H
#define SWITCHES_GPIO_REG_H GPIOG->IDR
#define SWITCHES_GPIO_PIN_H GPIO_Pin_7 // PG.07
#if defined(PCBX10)
#define STORAGE_SWITCH_GMBL
#define HARDWARE_SWITCH_GMBL
#define SWITCHES_GPIO_REG_GMBL GPIOH->IDR
#define SWITCHES_GPIO_PIN_GMBL GPIO_Pin_14 // PH.14
#define STORAGE_SWITCH_GMBR
#define HARDWARE_SWITCH_GMBR
#define SWITCHES_GPIO_REG_GMBR GPIOH->IDR
#define SWITCHES_GPIO_PIN_GMBR GPIO_Pin_15 // PH.15
#elif defined(PCBX12S)
#define STORAGE_SWITCH_GMBL
#define HARDWARE_SWITCH_GMBL
#define SWITCHES_GPIO_REG_GMBL GPIOB->IDR
#define SWITCHES_GPIO_PIN_GMBL GPIO_Pin_1 // PB.01
#define STORAGE_SWITCH_GMBR
#define HARDWARE_SWITCH_GMBR
#define SWITCHES_GPIO_REG_GMBR GPIOB->IDR
#define SWITCHES_GPIO_PIN_GMBR GPIO_Pin_0 // PB.00

View file

@ -51,6 +51,8 @@ void rotaryEncoderEnd();
// Keys driver
#define NUM_SWITCHES 7
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
enum EnumKeys
{
KEY_MENU,

View file

@ -441,23 +441,32 @@ enum EnumSwitchesPositions
#endif
NUM_SWITCHES_POSITIONS
};
#if defined(PCBXLITES)
#define NUM_SWITCHES 6
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
#elif defined(PCBXLITE)
#define NUM_SWITCHES 4
#define STORAGE_NUM_SWITCHES 6
#elif defined(PCBT12)
#define NUM_SWITCHES 6
#define STORAGE_NUM_SWITCHES 8
#elif defined(PCBX7)
#define NUM_SWITCHES 8
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
#elif defined(PCBX9LITE)
#define NUM_SWITCHES 5
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
#elif defined(PCBX9E)
#define NUM_SWITCHES 18 // yes, it's a lot!
#define NUM_SWITCHES 18 // yes, it's perfect like that !
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
#else
#define NUM_SWITCHES 8
#define STORAGE_NUM_SWITCHES NUM_SWITCHES
#endif
#if defined(__cplusplus)
static_assert(NUM_SWITCHES_POSITIONS == NUM_SWITCHES * 3, "Wrong switches positions count");
#endif
#define STORAGE_NUM_SWITCHES_POSITIONS (STORAGE_NUM_SWITCHES * 3)
#define NUM_SWITCHES_POSITIONS (NUM_SWITCHES * 3)
void keysInit(void);
uint8_t keyState(uint8_t index);

View file

@ -223,24 +223,29 @@
// Switches
#if defined(PCBX9E)
#define STORAGE_SWITCH_A
#define HARDWARE_SWITCH_A
#define HARDWARE_SWITCH_A
#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
#elif defined(PCBXLITE) || defined(PCBX9LITE)
#define STORAGE_SWITCH_A
#define HARDWARE_SWITCH_A
#define SWITCHES_GPIO_REG_A_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_A_H GPIO_Pin_1 // PE.01
#define SWITCHES_GPIO_REG_A_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_A_L GPIO_Pin_0 // PE.00
#elif defined(PCBX7)
#define STORAGE_SWITCH_A
#define HARDWARE_SWITCH_A
#define SWITCHES_GPIO_REG_A_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_A_L GPIO_Pin_7 // PE.07
#define SWITCHES_GPIO_REG_A_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_A_H GPIO_Pin_13 // PE.13
#else
#define STORAGE_SWITCH_A
#define HARDWARE_SWITCH_A
#define SWITCHES_GPIO_REG_A_H GPIOB->IDR
#define SWITCHES_GPIO_PIN_A_H GPIO_Pin_5 // PB.05
@ -249,30 +254,35 @@
#endif
#if defined(PCBX9E)
#define STORAGE_SWITCH_B
#define HARDWARE_SWITCH_B
#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
#elif defined(PCBXLITE)
#define STORAGE_SWITCH_B
#define HARDWARE_SWITCH_B
#define SWITCHES_GPIO_REG_B_L GPIOA->IDR
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_6 // PA.06
#define SWITCHES_GPIO_REG_B_H GPIOA->IDR
#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_5 // PA.05
#elif defined(PCBX7)
#define STORAGE_SWITCH_B
#define HARDWARE_SWITCH_B
#define SWITCHES_GPIO_REG_B_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_15 // PE.15
#define SWITCHES_GPIO_REG_B_H GPIOA->IDR
#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_5 // PA.05
#elif defined(PCBX9LITE)
#define STORAGE_SWITCH_B
#define HARDWARE_SWITCH_B
#define SWITCHES_GPIO_REG_B_L GPIOB->IDR
#define SWITCHES_GPIO_PIN_B_L GPIO_Pin_4 // PB.04
#define SWITCHES_GPIO_REG_B_H GPIOB->IDR
#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_5 // PB.05
#else
#define STORAGE_SWITCH_B
#define HARDWARE_SWITCH_B
#define SWITCHES_GPIO_REG_B_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_B_H GPIO_Pin_1 // PE.01
@ -281,24 +291,28 @@
#endif
#if defined(PCBX9E)
#define STORAGE_SWITCH_C
#define HARDWARE_SWITCH_C
#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
#elif defined(PCBXLITE) || defined(PCBX9LITE)
#define STORAGE_SWITCH_C
#define HARDWARE_SWITCH_C
#define SWITCHES_GPIO_REG_C_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_2 // PE.02
#define SWITCHES_GPIO_REG_C_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_3 // PE.03
#elif defined(PCBX7)
#define STORAGE_SWITCH_C
#define HARDWARE_SWITCH_C
#define SWITCHES_GPIO_REG_C_L GPIOD->IDR
#define SWITCHES_GPIO_PIN_C_L GPIO_Pin_11 // PD.11
#define SWITCHES_GPIO_REG_C_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_0 // PE.00
#else
#define STORAGE_SWITCH_C
#define HARDWARE_SWITCH_C
#define SWITCHES_GPIO_REG_C_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_C_H GPIO_Pin_15 // PE.15
@ -307,24 +321,28 @@
#endif
#if defined(PCBX9E)
#define STORAGE_SWITCH_D
#define HARDWARE_SWITCH_D
#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(PCBX9DP)
#define STORAGE_SWITCH_D
#define HARDWARE_SWITCH_D
#define SWITCHES_GPIO_REG_D_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_D_H GPIO_Pin_7 // PE.07
#define SWITCHES_GPIO_REG_D_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_D_L GPIO_Pin_13 // PE.13
#elif defined(PCBXLITE)
#define STORAGE_SWITCH_D
#define HARDWARE_SWITCH_D
#define SWITCHES_GPIO_REG_D_L GPIOB->IDR
#define SWITCHES_GPIO_PIN_D_L GPIO_Pin_4 // PB.04
#define SWITCHES_GPIO_REG_D_H GPIOB->IDR
#define SWITCHES_GPIO_PIN_D_H GPIO_Pin_5 // PB.05
#elif defined(PCBX7)
#define STORAGE_SWITCH_D
#define HARDWARE_SWITCH_D
#define SWITCHES_GPIO_REG_D_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_D_L GPIO_Pin_1 // PE.01
@ -333,6 +351,7 @@
#elif defined(PCBX9LITE)
// no SWD
#else
#define STORAGE_SWITCH_D
#define HARDWARE_SWITCH_D
#define SWITCHES_GPIO_REG_D_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_D_H GPIO_Pin_7 // PE.07
@ -341,22 +360,26 @@
#endif
#if defined(PCBX9E)
#define STORAGE_SWITCH_E
#define HARDWARE_SWITCH_E
#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
#elif defined(PCBXLITES)
#define STORAGE_SWITCH_E
#define HARDWARE_SWITCH_E
#define SWITCHES_GPIO_REG_E GPIOE->IDR
#define SWITCHES_GPIO_PIN_E GPIO_Pin_5 // PE.05
#elif defined(PCBX9LITE)
#define STORAGE_SWITCH_E
#define HARDWARE_SWITCH_E
#define SWITCHES_GPIO_REG_E GPIOC->IDR
#define SWITCHES_GPIO_PIN_E GPIO_Pin_13 // PC.13
#elif defined(PCBX7) || defined(PCBXLITE)
// no SWE
#else
#define STORAGE_SWITCH_E
#define HARDWARE_SWITCH_E
#define SWITCHES_GPIO_REG_E_H GPIOB->IDR
#define SWITCHES_GPIO_PIN_E_H GPIO_Pin_3 // PB.03
@ -365,30 +388,36 @@
#endif
#if defined(PCBX9E)
#define STORAGE_SWITCH_F
#define HARDWARE_SWITCH_F
#define SWITCHES_GPIO_REG_F GPIOE->IDR
#define SWITCHES_GPIO_PIN_F GPIO_Pin_11 // PE.11
#elif defined(PCBXLITES)
#define STORAGE_SWITCH_F
#define HARDWARE_SWITCH_F
#define SWITCHES_GPIO_REG_F GPIOC->IDR
#define SWITCHES_GPIO_PIN_F GPIO_Pin_3 // PC.03
#elif defined(PCBXLITE)
// no SWF
#elif defined(PCBX7)
#define STORAGE_SWITCH_F
#define HARDWARE_SWITCH_F
#define SWITCHES_GPIO_REG_F GPIOE->IDR
#define SWITCHES_GPIO_PIN_F GPIO_Pin_14 // PE.14
#elif defined(PCBX9LITE)
#define STORAGE_SWITCH_F
#define HARDWARE_SWITCH_F
#define SWITCHES_GPIO_REG_F GPIOA->IDR
#define SWITCHES_GPIO_PIN_F GPIO_Pin_5 // PA.05
#else
#define STORAGE_SWITCH_F
#define HARDWARE_SWITCH_F
#define SWITCHES_GPIO_REG_F GPIOE->IDR
#define SWITCHES_GPIO_PIN_F GPIO_Pin_14 // PE.14
#endif
#if defined(PCBX9E)
#define STORAGE_SWITCH_G
#define HARDWARE_SWITCH_G
#define SWITCHES_GPIO_REG_G_H GPIOF->IDR
#define SWITCHES_GPIO_PIN_G_H GPIO_Pin_3 // PF.03
@ -397,10 +426,12 @@
#elif defined(RADIO_X7) || defined(PCBXLITE) || defined(PCBX9LITE)
// no SWG
#elif defined(RADIO_T12)
#define STORAGE_SWITCH_G
#define HARDWARE_SWITCH_G
#define SWITCHES_GPIO_REG_G GPIOE->IDR
#define SWITCHES_GPIO_PIN_G GPIO_Pin_14 // PE.14
#else
#define STORAGE_SWITCH_G
#define HARDWARE_SWITCH_G
#define SWITCHES_GPIO_REG_G_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_G_H GPIO_Pin_9 // PE.09
@ -409,20 +440,24 @@
#endif
#if defined(PCBX9E)
#define STORAGE_SWITCH_H
#define HARDWARE_SWITCH_H
#define SWITCHES_GPIO_REG_H GPIOF->IDR
#define SWITCHES_GPIO_PIN_H GPIO_Pin_1 // PF.01
#elif defined(PCBX9DP)
#define STORAGE_SWITCH_H
#define HARDWARE_SWITCH_H
#define SWITCHES_GPIO_REG_H GPIOD->IDR
#define SWITCHES_GPIO_PIN_H GPIO_Pin_14 // PD.14
#elif defined(PCBXLITE) || defined(PCBX9LITE)
// no SWH
#elif defined(PCBX7)
#define STORAGE_SWITCH_H
#define HARDWARE_SWITCH_H
#define SWITCHES_GPIO_REG_H GPIOD->IDR
#define SWITCHES_GPIO_PIN_H GPIO_Pin_14 // PD.14
#else
#define STORAGE_SWITCH_H
#define HARDWARE_SWITCH_H
#define SWITCHES_GPIO_REG_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_H GPIO_Pin_13 // PE.13
@ -430,7 +465,9 @@
// X7 P400 P401 headers additionnal momentary switches
#if defined(PCBX7)
#define STORAGE_SWITCH_I
#define HARDWARE_SWITCH_I
#define STORAGE_SWITCH_J
#define HARDWARE_SWITCH_J
#define SWITCHES_GPIO_REG_I GPIOC->IDR
#define SWITCHES_GPIO_PIN_I GPIO_Pin_13 //PC.13
@ -439,51 +476,61 @@
#endif
#if defined(PCBX9E)
#define STORAGE_SWITCH_I
#define HARDWARE_SWITCH_I
#define SWITCHES_GPIO_REG_I_H GPIOF->IDR
#define SWITCHES_GPIO_PIN_I_H GPIO_Pin_15 // PF.15
#define SWITCHES_GPIO_REG_I_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_I_L GPIO_Pin_14 // PE.14
#define STORAGE_SWITCH_J
#define HARDWARE_SWITCH_J
#define SWITCHES_GPIO_REG_J_H GPIOG->IDR
#define SWITCHES_GPIO_PIN_J_H GPIO_Pin_7 // PG.07
#define SWITCHES_GPIO_REG_J_L GPIOG->IDR
#define SWITCHES_GPIO_PIN_J_L GPIO_Pin_8 // PG.08
#define STORAGE_SWITCH_k
#define HARDWARE_SWITCH_k
#define SWITCHES_GPIO_REG_K_H GPIOG->IDR
#define SWITCHES_GPIO_PIN_K_H GPIO_Pin_13 // PG.13
#define SWITCHES_GPIO_REG_K_L GPIOG->IDR
#define SWITCHES_GPIO_PIN_K_L GPIO_Pin_12 // PG.12
#define STORAGE_SWITCH_L
#define HARDWARE_SWITCH_L
#define SWITCHES_GPIO_REG_L_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_L_H GPIO_Pin_9 // PE.09
#define SWITCHES_GPIO_REG_L_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_L_L GPIO_Pin_8 // PE.08
#define STORAGE_SWITCH_M
#define HARDWARE_SWITCH_M
#define SWITCHES_GPIO_REG_M_H GPIOE->IDR
#define SWITCHES_GPIO_PIN_M_H GPIO_Pin_15 // PE.15
#define SWITCHES_GPIO_REG_M_L GPIOA->IDR
#define SWITCHES_GPIO_PIN_M_L GPIO_Pin_5 // PA.05
#define STORAGE_SWITCH_N
#define HARDWARE_SWITCH_N
#define SWITCHES_GPIO_REG_N_H GPIOB->IDR
#define SWITCHES_GPIO_PIN_N_H GPIO_Pin_3 // PB.03
#define SWITCHES_GPIO_REG_N_L GPIOB->IDR
#define SWITCHES_GPIO_PIN_N_L GPIO_Pin_4 // PB.04
#define STORAGE_SWITCH_O
#define HARDWARE_SWITCH_O
#define SWITCHES_GPIO_REG_O_H GPIOF->IDR
#define SWITCHES_GPIO_PIN_O_H GPIO_Pin_7 // PF.07
#define SWITCHES_GPIO_REG_O_L GPIOE->IDR
#define SWITCHES_GPIO_PIN_O_L GPIO_Pin_10 // PE.10
#define STORAGE_SWITCH_P
#define HARDWARE_SWITCH_P
#define SWITCHES_GPIO_REG_P_H GPIOF->IDR
#define SWITCHES_GPIO_PIN_P_H GPIO_Pin_11 // PF.11
#define SWITCHES_GPIO_REG_P_L GPIOF->IDR
#define SWITCHES_GPIO_PIN_P_L GPIO_Pin_12 // PF.12
#define STORAGE_SWITCH_Q
#define HARDWARE_SWITCH_Q
#define SWITCHES_GPIO_REG_Q_H GPIOF->IDR
#define SWITCHES_GPIO_PIN_Q_H GPIO_Pin_5 // PF.05
#define SWITCHES_GPIO_REG_Q_L GPIOF->IDR
#define SWITCHES_GPIO_PIN_Q_L GPIO_Pin_6 // PF.06
#define STORAGE_SWITCH_R
#define HARDWARE_SWITCH_R
#define SWITCHES_GPIO_REG_R_H GPIOB->IDR
#define SWITCHES_GPIO_PIN_R_H GPIO_Pin_5 // PB.05