From fc1bc8791cdcc55dbdef5b419b93981565339da7 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sun, 1 Oct 2023 14:34:51 +0100 Subject: [PATCH] Menu update, F-LOCK CE update, main screen fix --- Makefile | 6 ++++++ README.md | 4 ++-- firmware.bin | Bin 58764 -> 58952 bytes firmware.packed.bin | Bin 58782 -> 58970 bytes frequencies.c | 2 ++ helper/boot.c | 11 +++++++--- main.c | 48 ++++++++++++++++++++++++++++++++++---------- ui/menu.c | 6 ++++++ ui/welcome.c | 12 +++++++++++ ui/welcome.h | 1 + 10 files changed, 74 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index bc40e52..63b1147 100644 --- a/Makefile +++ b/Makefile @@ -33,8 +33,14 @@ ENABLE_AUDIO_BAR := 1 #ENABLE_SINGLE_VFO_CHAN := 1 #ENABLE_BAND_SCOPE := 1 +############################################################# + TARGET = firmware +ifeq ($(ENABLE_LTO),1) + ENABLE_OVERLAY := 0 +endif + BSP_DEFINITIONS := $(wildcard hardware/*/*.def) BSP_HEADERS := $(patsubst hardware/%,bsp/%,$(BSP_DEFINITIONS)) BSP_HEADERS := $(patsubst %.def,%.h,$(BSP_HEADERS)) diff --git a/README.md b/README.md index 118addb..e28e5c2 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,8 @@ You'll find the options at the top of "Makefile" ('0' = disable, '1' = enable) . ``` ENABLE_SWD := 0 only needed if using CPU's SWD port (debugging/programming) -ENABLE_OVERLAY := 1 cpu FLASH stuff -ENABLE_LTO := 0 **experimental, reduces size of compiled firmware but might break EEPROM reads +ENABLE_OVERLAY := 0 cpu FLASH stuff +ENABLE_LTO := 0 **experimental, reduces size of compiled firmware but might break EEPROM reads - DISABLE overlay if you enable this ENABLE_UART := 1 without this you can't configure radio via PC ENABLE_AIRCOPY := 0 easier to just enter frequency ENABLE_FMRADIO := 1 WBFM VHF band 2 RX diff --git a/firmware.bin b/firmware.bin index e7a58e7d4632e55367d8a35e7589a7e912970046..a3043a6e050aff4d3a812c5e8f124eb0f9cbe9be 100644 GIT binary patch delta 10265 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 4e938b74dd1797b019649fb9e2ec94547d2a66cf..4470b032a6ecf00fa9e269059c13c634a2eed85a 100644 GIT binary patch delta 26919 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 diff --git a/frequencies.c b/frequencies.c index 57460c1..65f070f 100644 --- a/frequencies.c +++ b/frequencies.c @@ -205,6 +205,8 @@ int TX_FREQUENCY_Check(const uint32_t Frequency) case F_LOCK_CE: if (Frequency >= 14400000 && Frequency < 14600000) return 0; + if (Frequency >= 43000000 && Frequency < 44000000) + return 0; break; case F_LOCK_GB: diff --git a/helper/boot.c b/helper/boot.c index 651d0c2..b5a0c1e 100644 --- a/helper/boot.c +++ b/helper/boot.c @@ -39,8 +39,10 @@ BOOT_Mode_t BOOT_GetMode(void) for (i = 0; i < 2; i++) { if (GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT)) - return BOOT_MODE_NORMAL; + return BOOT_MODE_NORMAL; // PTT not pressed + Keys[i] = KEYBOARD_Poll(); + SYSTEM_DelayMs(20); } @@ -48,6 +50,7 @@ BOOT_Mode_t BOOT_GetMode(void) { gKeyReading0 = Keys[0]; gKeyReading1 = Keys[0]; + gDebounceCounter = 2; if (Keys[0] == KEY_SIDE1) @@ -66,7 +69,7 @@ void BOOT_ProcessMode(BOOT_Mode_t Mode) { if (Mode == BOOT_MODE_F_LOCK) { - // enable all the menu items +/* // enable all the menu items gMenuListCount = 0; // while (MenuList[gMenuListCount].name != NULL) while (MenuList[gMenuListCount].name[0] != '\0') @@ -74,8 +77,10 @@ void BOOT_ProcessMode(BOOT_Mode_t Mode) gMenuCursor = MENU_350TX; gSubMenuSelection = gSetting_350TX; +*/ GUI_SelectNextDisplay(DISPLAY_MENU); - gF_LOCK = true; + + gF_LOCK = true; } #ifdef ENABLE_AIRCOPY else diff --git a/main.c b/main.c index c1dc33e..b39081f 100644 --- a/main.c +++ b/main.c @@ -50,6 +50,7 @@ void _putchar(char c) void Main(void) { unsigned int i; + BOOT_Mode_t BootMode; // Enable clock gating of blocks we need SYSCON_DEV_CLK_GATE = 0 @@ -67,7 +68,7 @@ void Main(void) UART_Init(); boot_counter_10ms = 250; // 2.5 sec - + UART_Send(UART_Version, strlen(UART_Version)); // Not implementing authentic device checks @@ -101,12 +102,38 @@ void Main(void) AM_fix_init(); #endif - // count the number of menu list items - gMenuListCount = 0; - while (MenuList[gMenuListCount].name[0] != '\0') - gMenuListCount++; - gMenuListCount -= 8; // disable the last 'n' items + BootMode = BOOT_GetMode(); + if (BootMode == BOOT_MODE_F_LOCK) + { // enable all the menu items + gMenuListCount = 0; + while (MenuList[gMenuListCount].name[0] != '\0') + gMenuListCount++; + + gMenuCursor = MENU_350TX; + gSubMenuSelection = gSetting_350TX; + gF_LOCK = true; + } + else + { // hide the hidden menu items + gMenuListCount = 0; + while (MenuList[gMenuListCount].name[0] != '\0') + gMenuListCount++; + gMenuListCount -= 8; // disable the last 'n' items + } + // wait for user to release all keys/butts before moving on + if (!GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT) || KEYBOARD_Poll() != KEY_INVALID) + { // keys are pressed + UI_DisplayReleaseKeys(); + BACKLIGHT_TurnOn(); + i = 0; + while (i < 50) // 500ms + { + i = (GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT) && KEYBOARD_Poll() == KEY_INVALID) ? i + 1 : 0; + SYSTEM_DelayMs(10); + } + } + if (!gChargingWithTypeC && !gBatteryDisplayLevel) { FUNCTION_Select(FUNCTION_POWER_SAVE); @@ -120,9 +147,8 @@ void Main(void) } else { - BOOT_Mode_t BootMode; - UI_DisplayWelcome(); + BACKLIGHT_TurnOn(); if (gEeprom.POWER_ON_DISPLAY_MODE != POWER_ON_DISPLAY_MODE_NONE) @@ -131,7 +157,7 @@ void Main(void) { if (KEYBOARD_Poll() != KEY_INVALID) { // halt boot beeps - boot_counter_10ms = 0; + boot_counter_10ms = 0; break; } #ifdef ENABLE_BOOT_BEEPS @@ -141,8 +167,6 @@ void Main(void) } } - BootMode = BOOT_GetMode(); - if (gEeprom.POWER_ON_PASSWORD < 1000000) { bIsInLockScreen = true; @@ -179,6 +203,8 @@ void Main(void) #ifdef ENABLE_NOAA RADIO_ConfigureNOAA(); #endif + + // ****************** } while (1) diff --git a/ui/menu.c b/ui/menu.c index b09205b..ccdf777 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -370,6 +370,9 @@ void UI_DisplayMenu(void) while (i < 2) { // leading menu items const int k = menu_index + i - 2; + if (k < 0) + UI_PrintStringSmall(MenuList[gMenuListCount + k].name, 0, 0, i); // wrap-a-round + else if (k >= 0 && k < (int)gMenuListCount) UI_PrintStringSmall(MenuList[k].name, 0, 0, i); i++; @@ -384,6 +387,9 @@ void UI_DisplayMenu(void) const int k = menu_index + i - 2; if (k >= 0 && k < (int)gMenuListCount) UI_PrintStringSmall(MenuList[k].name, 0, 0, 1 + i); + else + if (k >= (int)gMenuListCount) + UI_PrintStringSmall(MenuList[gMenuListCount - k].name, 0, 0, 1 + i); // wrap-a-round i++; } } diff --git a/ui/welcome.c b/ui/welcome.c index 8ef677c..814e417 100644 --- a/ui/welcome.c +++ b/ui/welcome.c @@ -27,6 +27,18 @@ #include "ui/status.h" #include "version.h" +void UI_DisplayReleaseKeys(void) +{ + memset(gStatusLine, 0, sizeof(gStatusLine)); + memset(gFrameBuffer, 0, sizeof(gFrameBuffer)); + + UI_PrintString("RELEASE", 0, 127, 1, 10); + UI_PrintString("ALL KEYS", 0, 127, 3, 10); + + ST7565_BlitStatusLine(); // blank status line + ST7565_BlitFullScreen(); +} + void UI_DisplayWelcome(void) { char WelcomeString0[16]; diff --git a/ui/welcome.h b/ui/welcome.h index 1f7c6dd..b21a85e 100644 --- a/ui/welcome.h +++ b/ui/welcome.h @@ -17,6 +17,7 @@ #ifndef UI_WELCOME_H #define UI_WELCOME_H +void UI_DisplayReleaseKeys(void); void UI_DisplayWelcome(void); #endif