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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 delta 10109 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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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 RF;D$zP*h>$bou8kVgN_q*+BpR delta 26730 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 N<-w9$j151p0sz|`nSlTR 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