Bsongis/xlite fixes (#5803)

X-Lite fixes
This commit is contained in:
Bertrand Songis
2018-04-04 23:40:21 +02:00
committed by GitHub
parent fabee0e675
commit ec463819fe
8 changed files with 50 additions and 39 deletions
+14 -3
View File
@@ -109,8 +109,10 @@ enum MenuRadioHardwareItems {
ITEM_RADIO_HARDWARE_SB,
ITEM_RADIO_HARDWARE_SC,
ITEM_RADIO_HARDWARE_SD,
#if NUM_SWITCHES > 4
ITEM_RADIO_HARDWARE_SF,
ITEM_RADIO_HARDWARE_SH,
#endif
ITEM_RADIO_HARDWARE_SERIAL_BAUDRATE,
#if defined(BLUETOOTH)
ITEM_RADIO_HARDWARE_BLUETOOTH_MODE,
@@ -124,7 +126,13 @@ enum MenuRadioHardwareItems {
};
#define POTS_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1
#if NUM_SWITCHES > 4
#define SWITCHES_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1
#else
#define SWITCHES_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1
#endif
#if defined(PCBTARANIS)
#define BLUETOOTH_ROWS uint8_t(btChipPresent ? 0 : HIDDEN_ROW), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_TELEMETRY ? -1 : HIDDEN_ROW), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : -1), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : -1), uint8_t(g_eeGeneral.bluetoothMode == BLUETOOTH_OFF ? HIDDEN_ROW : 0),
#elif defined(BLUETOOTH)
@@ -133,18 +141,19 @@ enum MenuRadioHardwareItems {
#define BLUETOOTH_ROWS
#endif
#if defined(PCBXLITE)
#define SWITCH_TYPE_MAX(sw) SWITCH_3POS
#define SWITCH_TYPE_MAX(sw) ((MIXSRC_SC-MIXSRC_FIRST_SWITCH == sw || MIXSRC_SD-MIXSRC_FIRST_SWITCH == sw) ? SWITCH_2POS : SWITCH_3POS)
#else
#define SWITCH_TYPE_MAX(sw) ((MIXSRC_SF-MIXSRC_FIRST_SWITCH == sw || MIXSRC_SH-MIXSRC_FIRST_SWITCH == sw) ? SWITCH_2POS : SWITCH_3POS)
#endif
#define HW_SETTINGS_COLUMN1 30
#define HW_SETTINGS_COLUMN2 (30 + 5*FW)
void menuRadioHardware(event_t event)
{
MENU(STR_HARDWARE, menuTabGeneral, MENU_RADIO_HARDWARE, ITEM_RADIO_HARDWARE_MAX, { LABEL(Sticks), 0, 0, 0, 0, LABEL(Pots), POTS_ROWS, LABEL(Switches), SWITCHES_ROWS, 0, BLUETOOTH_ROWS 0 });
MENU(STR_HARDWARE, menuTabGeneral, MENU_RADIO_HARDWARE, HEADER_LINE+ITEM_RADIO_HARDWARE_MAX, { HEADER_LINE_COLUMNS LABEL(Sticks), 0, 0, 0, 0, LABEL(Pots), POTS_ROWS, LABEL(Switches), SWITCHES_ROWS, 0, BLUETOOTH_ROWS 0 });
uint8_t sub = menuVerticalPosition;
uint8_t sub = menuVerticalPosition - HEADER_LINE;
for (uint8_t i=0; i<LCD_LINES-1; i++) {
coord_t y = MENU_HEADER_HEIGHT + 1 + i*FH;
@@ -197,8 +206,10 @@ void menuRadioHardware(event_t event)
case ITEM_RADIO_HARDWARE_SB:
case ITEM_RADIO_HARDWARE_SC:
case ITEM_RADIO_HARDWARE_SD:
#if NUM_SWITCHES > 4
case ITEM_RADIO_HARDWARE_SF:
case ITEM_RADIO_HARDWARE_SH:
#endif
{
int index = k-ITEM_RADIO_HARDWARE_SA;
int config = SWITCH_CONFIG(index);
+1 -1
View File
@@ -549,7 +549,7 @@ void menuMainView(event_t event)
uint8_t x = 2*FW-2, y = 4*FH+i*FH+1;
if (i >= NUM_SWITCHES/2) {
x = 16*FW+1;
y -= 3*FH;
y -= (NUM_SWITCHES/2)*FH;
}
getvalue_t val = getValue(MIXSRC_FIRST_SWITCH+i);
getvalue_t sw = ((val < 0) ? 3*i+1 : ((val == 0) ? 3*i+2 : 3*i+3));
+5 -3
View File
@@ -261,7 +261,7 @@ void generalDefault()
#endif
g_eeGeneral.slidersConfig = 0x0f; // 4 sliders
g_eeGeneral.blOffBright = 20;
#elif defined(PCBX7) || defined(PCBXLITE)
#elif defined(PCBX7) || defined(PCBXLITE)
g_eeGeneral.potsConfig = 0x07; // S1 = pot without detent, S2 = pot with detent
#elif defined(PCBTARANIS)
g_eeGeneral.potsConfig = 0x05; // S1 and S2 = pots with detent
@@ -269,7 +269,7 @@ void generalDefault()
#endif
#if defined(PCBXLITE)
g_eeGeneral.switchConfig = 0x0000000f; // 2x3POS
g_eeGeneral.switchConfig = (SWITCH_2POS << 6) + (SWITCH_2POS << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0); // 2x3POS, 2x2POS
#elif defined(PCBX7)
g_eeGeneral.switchConfig = 0x000006ff; // 4x3POS, 1x2POS, 1xTOGGLE
#elif defined(PCBTARANIS) || defined(PCBHORUS)
@@ -1268,7 +1268,7 @@ void alert(const pm_char * title, const pm_char * msg ALERT_SOUND_ARG)
bool refresh = false;
#endif
while(1) {
while (1) {
SIMU_SLEEP(1);
#if defined(CPUARM)
CoTickDelay(10);
@@ -1283,6 +1283,7 @@ void alert(const pm_char * title, const pm_char * msg ALERT_SOUND_ARG)
#if defined(PWR_BUTTON_PRESS)
uint32_t pwr_check = pwrCheck();
if (pwr_check == e_power_off) {
drawSleepBitmap();
boardOff();
}
else if (pwr_check == e_power_press) {
@@ -1294,6 +1295,7 @@ void alert(const pm_char * title, const pm_char * msg ALERT_SOUND_ARG)
}
#else
if (pwrCheck() == e_power_off) {
drawSleepBitmap();
boardOff(); // turn power off now
}
#endif
@@ -36,8 +36,10 @@
9 /*TX_VOLTAGE*/ };
#elif defined(PCBX9DP)
const int8_t ana_direction[NUM_ANALOGS] = {1,-1,1,-1, 1,1,-1, 1,1, 1};
#elif defined(PCBX7) || defined(PCBXLITE)
#elif defined(PCBX7)
const int8_t ana_direction[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1};
#elif defined(PCBXLITE)
const int8_t ana_direction[NUM_ANALOGS] = {1,-1,-1,1, -1,1, 1};
#elif defined(REV4a)
const int8_t ana_direction[NUM_ANALOGS] = {1,-1,1,-1, 1,-1,0, 1,1, 1};
#else
@@ -103,14 +105,8 @@ void adcInit()
ADC_MAIN->SQR2 = (ADC_CHANNEL_POT4<<0) + (ADC_CHANNEL_SLIDER3<<5) + (ADC_CHANNEL_SLIDER4<<10) + (ADC_CHANNEL_BATT<<15); // conversions 7 and more
ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH<<0) + (ADC_CHANNEL_STICK_LV<<5) + (ADC_CHANNEL_STICK_RV<<10) + (ADC_CHANNEL_STICK_RH<<15) + (ADC_CHANNEL_POT2<<20) + (ADC_CHANNEL_POT3<<25); // conversions 1 to 6
#elif defined(PCBXLITE)
if (ANALOGS_PWM_ENABLED()) {
ADC_MAIN->SQR2 = 0;
ADC_MAIN->SQR3 = (ADC_CHANNEL_POT1<<25) + (ADC_CHANNEL_POT2<<20) + (ADC_CHANNEL_BATT<<0);
}
else {
ADC_MAIN->SQR2 = (ADC_CHANNEL_BATT<<0); // conversions 7 and more
ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH<<0) + (ADC_CHANNEL_STICK_LV<<5) + (ADC_CHANNEL_STICK_RV<<10) + (ADC_CHANNEL_STICK_RH<<15) + (ADC_CHANNEL_POT1<<25) + (ADC_CHANNEL_POT2<<20); // conversions 1 to 6
}
ADC_MAIN->SQR2 = 0;
ADC_MAIN->SQR3 = (ADC_CHANNEL_POT1<<0) + (ADC_CHANNEL_POT2<<5) + (ADC_CHANNEL_BATT<<10);
#elif defined(PCBX7)
ADC_MAIN->SQR2 = (ADC_CHANNEL_BATT<<0); // conversions 7 and more
ADC_MAIN->SQR3 = (ADC_CHANNEL_STICK_LH<<0) + (ADC_CHANNEL_STICK_LV<<5) + (ADC_CHANNEL_STICK_RV<<10) + (ADC_CHANNEL_STICK_RH<<15) + (ADC_CHANNEL_POT1<<25) + (ADC_CHANNEL_POT2<<20); // conversions 1 to 6
+1 -2
View File
@@ -430,8 +430,7 @@ enum Analogs {
#if defined(PCBXLITE)
#define NUM_PWMANALOGS 4
extern uint8_t analogs_pwm_disabled;
#define ANALOGS_PWM_ENABLED() (analogs_pwm_disabled == false)
#define ANALOGS_PWM_ENABLED() (true)
void analogPwmInit(void);
void analogPwmRead(uint16_t * values);
void analogPwmCheck();
+17 -14
View File
@@ -114,10 +114,10 @@
#define TRIMS_GPIO_PIN_LHL GPIO_Pin_4 // PC.04
#define TRIMS_GPIO_REG_LHR GPIOC->IDR
#define TRIMS_GPIO_PIN_LHR GPIO_Pin_5 // PC.05
#define TRIMS_GPIO_REG_LVD GPIOB->IDR
#define TRIMS_GPIO_PIN_LVD GPIO_Pin_0 // PB.00
#define TRIMS_GPIO_REG_LVU GPIOB->IDR
#define TRIMS_GPIO_PIN_LVU GPIO_Pin_1 // PB.01
#define TRIMS_GPIO_PIN_LVU GPIO_Pin_0 // PB.00
#define TRIMS_GPIO_REG_LVD GPIOB->IDR
#define TRIMS_GPIO_PIN_LVD GPIO_Pin_1 // PB.01
#elif defined(PCBX7)
#define TRIMS_GPIO_REG_LHL GPIOD->IDR
#define TRIMS_GPIO_PIN_LHL GPIO_Pin_15 // PD.15
@@ -480,13 +480,12 @@
#define ADC_GPIO_PIN_POT1 GPIO_Pin_1 // PC.01
#define ADC_GPIO_PIN_POT2 GPIO_Pin_2 // PC.02
#define ADC_GPIO_PIN_BATT GPIO_Pin_0 // PC.00
#define STICKS_GPIOA_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3)
#define PWM_GPIOA_PINS STICKS_GPIOA_PINS
#define ADC_GPIOA_PINS (ADC_GPIO_PIN_POT1 | (ANALOGS_PWM_ENABLED() ? 0 : STICKS_GPIOA_PINS))
#define ADC_GPIOB_PINS ADC_GPIO_PIN_POT2
#define ADC_GPIOC_PINS ADC_GPIO_PIN_BATT
#define ADC_CHANNEL_POT1 ADC_Channel_6
#define ADC_CHANNEL_POT2 ADC_Channel_8
#define PWM_GPIOA_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3)
#define ADC_GPIOA_PINS 0
#define ADC_GPIOB_PINS 0
#define ADC_GPIOC_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2)
#define ADC_CHANNEL_POT1 ADC_Channel_11
#define ADC_CHANNEL_POT2 ADC_Channel_12
#define ADC_CHANNEL_BATT ADC_Channel_10
#elif defined(PCBX7)
#define ADC_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA2)
@@ -558,14 +557,18 @@
#if defined(PCBXLITE)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON GPIO_ResetBits
#define GPIO_LED_GPIO_OFF GPIO_SetBits
#define LED_BLUE_GPIO GPIOE
#define LED_BLUE_GPIO_PIN GPIO_Pin_4 // PE.04
#define LED_RED_GPIO GPIOE
#define LED_RED_GPIO_PIN GPIO_Pin_6 // PE.06
#define LED_GREEN_GPIO GPIOE
#define LED_GREEN_GPIO_PIN GPIO_Pin_5 // PE.05
#define LED_RED_GPIO GPIOE
#define LED_RED_GPIO_PIN GPIO_Pin_4 // PE.04
#define LED_BLUE_GPIO GPIOE
#define LED_BLUE_GPIO_PIN GPIO_Pin_6 // PE.06
#elif defined(PCBX7)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON GPIO_SetBits
#define GPIO_LED_GPIO_OFF GPIO_ResetBits
#define LED_GREEN_GPIO GPIOC
#define LED_GREEN_GPIO_PIN GPIO_Pin_4 // PC.04
#define LED_RED_GPIO GPIOC
+6 -6
View File
@@ -39,25 +39,25 @@ void ledInit()
void ledOff()
{
GPIO_ResetBits(LED_RED_GPIO, LED_RED_GPIO_PIN);
GPIO_ResetBits(LED_BLUE_GPIO, LED_BLUE_GPIO_PIN);
GPIO_ResetBits(LED_GREEN_GPIO, LED_GREEN_GPIO_PIN);
GPIO_LED_GPIO_OFF(LED_RED_GPIO, LED_RED_GPIO_PIN);
GPIO_LED_GPIO_OFF(LED_BLUE_GPIO, LED_BLUE_GPIO_PIN);
GPIO_LED_GPIO_OFF(LED_GREEN_GPIO, LED_GREEN_GPIO_PIN);
}
void ledRed()
{
ledOff();
GPIO_SetBits(LED_RED_GPIO, LED_RED_GPIO_PIN);
GPIO_LED_GPIO_ON(LED_RED_GPIO, LED_RED_GPIO_PIN);
}
void ledGreen()
{
ledOff();
GPIO_SetBits(LED_GREEN_GPIO, LED_GREEN_GPIO_PIN);
GPIO_LED_GPIO_ON(LED_GREEN_GPIO, LED_GREEN_GPIO_PIN);
}
void ledBlue()
{
ledOff();
GPIO_SetBits(LED_BLUE_GPIO, LED_BLUE_GPIO_PIN);
GPIO_LED_GPIO_ON(LED_BLUE_GPIO, LED_BLUE_GPIO_PIN);
}
+1 -1
View File
@@ -477,7 +477,7 @@
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0""\312SJ\0""\312SK\0""\312SL\0""\312SM\0""\312SN\0""\312SO\0""\312SP\0""\312SQ\0""\312SR\0"
#elif defined(PCBXLITE)
#define TR_POTS_VSRCRAW "\310S1\0""\310S2\0"
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0"
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0"
#elif defined(PCBX7)
#define TR_POTS_VSRCRAW "\310S1\0""\310S2\0"
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SF\0""\312SH\0"