From 56836a3faf010f639e23193b32289c0397eca4ca Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Wed, 22 Nov 2023 11:21:53 +0000 Subject: [PATCH] . --- app/app.c | 158 +++++++++++++++++++++----------------------- firmware.bin | Bin 61344 -> 61332 bytes firmware.packed.bin | Bin 61362 -> 61350 bytes misc.c | 5 +- misc.h | 1 + ui/menu.c | 29 ++++---- 6 files changed, 98 insertions(+), 95 deletions(-) diff --git a/app/app.c b/app/app.c index 9cdd3df..562da2d 100644 --- a/app/app.c +++ b/app/app.c @@ -1277,14 +1277,14 @@ void APP_end_tx(void) } #endif -int key_repeat_speedup_ticks = 2500 / 10; // 2.5 seconds -uint8_t key_repeat_ticks = 300 / 10; // 300ms - // called every 10ms -void APP_check_keys(void) +void APP_process_keys(void) { const bool ptt_pressed = !GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT); + static int key_repeat_speedup_ticks = 0; + static uint8_t key_repeat_ticks = 0; + key_code_t key; #ifdef ENABLE_KILL_REVIVE @@ -1352,13 +1352,11 @@ void APP_check_keys(void) #endif // ***************** - // button processing (non-PTT) + // key/button processing (non-PTT) // scan the hardware keys key = KEYBOARD_Poll(); - g_boot_tick_10ms = 0; // cancel boot screen/beeps - if (g_serial_config_tick_500ms > 0) { // config upload/download in progress g_key_debounce_press = 0; @@ -1372,10 +1370,6 @@ void APP_check_keys(void) if (key == KEY_INVALID || (g_key_prev != KEY_INVALID && key != g_key_prev)) { // key not pressed or different key pressed - // reset the key repeat speed-up settings - key_repeat_speedup_ticks = 2500 / 10; // speed-up once every 2.5 seconds - key_repeat_ticks = key_repeat_initial_10ms; - if (g_key_debounce_press > 0) { if (--g_key_debounce_press == 0) @@ -1387,7 +1381,7 @@ void APP_check_keys(void) g_key_debounce_repeat = 0; g_key_prev = KEY_INVALID; g_key_held = false; - g_boot_tick_10ms = 0; // cancel the boot-up screen + g_boot_tick_10ms = 0; // cancel boot screen/beeps g_update_status = true; // g_update_display = true; } @@ -1396,73 +1390,76 @@ void APP_check_keys(void) if (g_key_debounce_repeat > 0) g_key_debounce_repeat--; } - } - else - { // key pressed - // long press time can be different for different keys - const uint8_t long_press_ticks = (key == KEY_SIDE1 || key == KEY_SIDE2) ? key_side_long_press_10ms : key_long_press_10ms; - - if (g_key_debounce_press < key_debounce_10ms) - { - if (++g_key_debounce_press >= key_debounce_10ms) - { - if (key != g_key_prev) - { // key now fully pressed - g_key_debounce_repeat = key_debounce_10ms; - g_key_held = false; - g_key_prev = key; - APP_process_key(g_key_prev, true, g_key_held); - g_update_status = true; -// g_update_display = true; - } - } - } - else - if (g_key_debounce_repeat < long_press_ticks) - { - if (++g_key_debounce_repeat >= long_press_ticks) - { // key long press - g_key_held = true; - APP_process_key(g_key_prev, true, g_key_held); - g_update_status = true; - } - } - else - if (key == KEY_UP || key == KEY_DOWN) - { // only the up and down keys are made repeatable - - // speed up key repeat the longer it's held down - if (key_repeat_ticks > key_repeat_fastest_10ms) - { - if (--key_repeat_speedup_ticks <= 0) - { - key_repeat_speedup_ticks = 2500 / 10; // speed-up once every 2.5 seconds - key_repeat_ticks = (key_repeat_ticks > (60 / 10)) ? key_repeat_ticks >> 1 : key_repeat_ticks - 1; - } - } - key_repeat_ticks = (key_repeat_ticks < key_repeat_fastest_10ms) ? key_repeat_fastest_10ms : key_repeat_ticks; - - // key repeat max 10ms speed if user is moving up/down in freq/channel -// const bool freq_chan = IS_FREQ_CHANNEL(g_eeprom.config.setting.indices.vfo[g_eeprom.config.setting.tx_vfo_num].screen); -// const uint8_t repeat_ticks = (g_manual_scanning && g_monitor_enabled && freq_chan && g_current_display_screen == DISPLAY_MAIN) ? 2 : key_repeat_ticks; - const uint8_t repeat_ticks = key_repeat_ticks; - - if (++g_key_debounce_repeat >= (long_press_ticks + repeat_ticks)) - { // key repeat - - #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) -// UART_printf("rp %u\n", key_repeat_ticks); - #endif - - g_key_debounce_repeat = long_press_ticks; - - APP_process_key(g_key_prev, true, g_key_held); - } - } + return; } - // ***************** + // key pressed + + if (g_key_debounce_press < key_debounce_10ms) + { + if (++g_key_debounce_press >= key_debounce_10ms) + { + if (key != g_key_prev) + { // key pressed + key_repeat_speedup_ticks = key_repeat_speedup_10ms; + key_repeat_ticks = key_repeat_initial_10ms; + g_key_debounce_repeat = key_debounce_10ms; + g_key_prev = key; + g_key_held = false; + APP_process_key(g_key_prev, true, g_key_held); + g_update_status = true; +// g_update_display = true; + } + } + return; + } + + // long press time can be different for different keys + const uint8_t long_press_ticks = (key == KEY_SIDE1 || key == KEY_SIDE2) ? key_side_long_press_10ms : key_long_press_10ms; + + if (g_key_debounce_repeat < long_press_ticks) + { + if (++g_key_debounce_repeat >= long_press_ticks) + { // key long press + g_key_held = true; + APP_process_key(g_key_prev, true, g_key_held); + } + return; + } + + if (key != KEY_UP && key != KEY_DOWN) + return; // up and down keys are the only repeatables + + // speed up key repeat + if (key_repeat_ticks > key_repeat_fastest_10ms) + { + if (--key_repeat_speedup_ticks <= 0) + { + key_repeat_speedup_ticks = key_repeat_speedup_10ms; + key_repeat_ticks = (key_repeat_ticks > (80 / 10)) ? key_repeat_ticks >> 1 : key_repeat_ticks - 1; + } + } + key_repeat_ticks = (key_repeat_ticks < key_repeat_fastest_10ms) ? key_repeat_fastest_10ms : key_repeat_ticks; + + // key repeat max 10ms speed if user is moving up/down in freq/channel +// const bool freq_chan = IS_FREQ_CHANNEL(g_eeprom.config.setting.indices.vfo[g_eeprom.config.setting.tx_vfo_num].screen); +// const uint8_t repeat_ticks = (g_manual_scanning && g_monitor_enabled && freq_chan && g_current_display_screen == DISPLAY_MAIN) ? 2 : key_repeat_ticks; + + const uint8_t repeat_ticks = key_repeat_ticks; + + if (++g_key_debounce_repeat < (long_press_ticks + repeat_ticks)) + return; + + // key repeat + + g_key_debounce_repeat = long_press_ticks; + + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) +// UART_printf("rp %u\n", key_repeat_ticks); + #endif + + APP_process_key(g_key_prev, true, g_key_held); } void APP_cancel_user_input_modes(void) @@ -1726,14 +1723,14 @@ void APP_process_search(void) { if (--g_search_tick_10ms > 0) { - APP_check_keys(); + APP_process_keys(); return; } } if (g_search_edit_state != SEARCH_EDIT_STATE_NONE) { // waiting for user input choice - APP_check_keys(); + APP_process_keys(); return; } @@ -1860,7 +1857,6 @@ void APP_process_power_save(void) g_ptt_is_pressed || g_fkey_pressed || g_key_pressed != KEY_INVALID || - g_key_held || g_eeprom.config.setting.battery_save_ratio == 0 || g_scan_state_dir != SCAN_STATE_DIR_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF || @@ -2386,7 +2382,7 @@ void APP_time_slice_10ms(void) AIRCOPY_process_fsk_rx_10ms(); - APP_check_keys(); + APP_process_keys(); return; } #endif @@ -2551,7 +2547,7 @@ void APP_time_slice_10ms(void) APP_process_search(); - APP_check_keys(); + APP_process_keys(); } static void APP_process_key(const key_code_t Key, const bool key_pressed, const bool key_held) diff --git a/firmware.bin b/firmware.bin index 7a0aff3aef7813d2feb01157a83362f2634b5484..28ebb5f6a304cf37b8d286ef04c3f4c3afbdbfd8 100644 GIT binary patch delta 13856 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 APXGV_ diff --git a/firmware.packed.bin b/firmware.packed.bin index 64d4b7b8c93611fae4eaf2e9d7c3dcd2885bd173..580f63eae75d5bb4212dd61c75a2b401d19b89fc 100644 GIT binary patch delta 33401 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 LS0dBxd&~a;=(T0; delta 33413 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 E0lNp6UH||9 diff --git a/misc.c b/misc.c index 5682a08..facb6b2 100644 --- a/misc.c +++ b/misc.c @@ -47,9 +47,10 @@ const uint8_t key_input_timeout_500ms = 6000 / 500; // 6 sec const uint8_t key_debounce_10ms = 30 / 10; // 30ms const uint8_t key_side_long_press_10ms = 1000 / 10; // 1 second -const uint8_t key_long_press_10ms = 300 / 10; // 300ms -const uint8_t key_repeat_initial_10ms = 300 / 10; // 300ms +const uint8_t key_long_press_10ms = 320 / 10; // 320ms +const uint8_t key_repeat_initial_10ms = 320 / 10; // 320ms const uint8_t key_repeat_fastest_10ms = 10 / 10; // 10ms +const uint16_t key_repeat_speedup_10ms = 2500 / 10; // speed-up key repeat once every 2.5 seconds const uint16_t search_freq_css_10ms = 10000 / 10; // 10 seconds const uint16_t search_10ms = 210 / 10; // 210ms .. don't reduce this diff --git a/misc.h b/misc.h index 6b61ad7..2237beb 100644 --- a/misc.h +++ b/misc.h @@ -150,6 +150,7 @@ extern const uint8_t key_side_long_press_10ms; extern const uint8_t key_long_press_10ms; extern const uint8_t key_repeat_initial_10ms; extern const uint8_t key_repeat_fastest_10ms; +extern const uint16_t key_repeat_speedup_10ms; extern const uint16_t search_freq_css_10ms; extern const uint16_t search_10ms; diff --git a/ui/menu.c b/ui/menu.c index 99c2af1..8f4067b 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -390,6 +390,8 @@ const char g_sub_menu_side_butt[9][16] = }; #endif +const char back_light_str[] = "BACKLITE\n"; + // *************************************************************************************** uint8_t g_menu_list_sorted[ARRAY_SIZE(g_menu_list)]; @@ -678,7 +680,7 @@ void UI_DisplayMenu(void) str[i] = '.'; while (i < 8) { - str[1 + i] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0'; + str[1 + i] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0'; i++; } UI_PrintString(str, sub_menu_x1, sub_menu_x2, 1, 8); @@ -718,13 +720,13 @@ void UI_DisplayMenu(void) #endif case MENU_AUTO_BACKLITE: - strcpy(str, "BACKLITE\n"); + strcpy(str, back_light_str); strcat(str, g_sub_menu_backlight[g_sub_menu_selection]); BACKLIGHT_turn_on(5); break; case MENU_AUTO_BACKLITE_ON_TX_RX: - strcpy(str, "BACKLITE\n"); + strcpy(str, back_light_str); strcat(str, g_sub_menu_rx_tx[g_sub_menu_selection]); break; @@ -756,8 +758,12 @@ void UI_DisplayMenu(void) #ifdef ENABLE_CONTRAST case MENU_CONTRAST: - strcpy(str, "CONTRAST\n"); - sprintf(str + strlen(str), "%d", g_sub_menu_selection); + #if 0 + strcpy(str, "CONTRAST\n"); + sprintf(str + strlen(str), "%d", g_sub_menu_selection); + #else + sprintf(str, "%d", g_sub_menu_selection); + #endif ST7565_SetContrast(g_sub_menu_selection); g_update_display = true; break; @@ -956,7 +962,7 @@ void UI_DisplayMenu(void) #endif case MENU_DUAL_WATCH: -// strcpy(String, g_sub_menu_dual_watch[g_sub_menu_selection]); +// strcpy(str, g_sub_menu_dual_watch[g_sub_menu_selection]); strcpy(str, g_sub_menu_off_on[g_sub_menu_selection]); break; @@ -1051,7 +1057,6 @@ void UI_DisplayMenu(void) case MENU_DTMF_PRE: strcpy(str, "DTMF BOT\nDELAY\n"); -// sprintf(String + strlen(String), "%d*10ms", g_sub_menu_selection); sprintf(str + strlen(str), "%dms", 10 * g_sub_menu_selection); break; @@ -1061,7 +1066,7 @@ void UI_DisplayMenu(void) strcat(str, g_sub_menu_mdc1200_mode[g_sub_menu_selection]); channel_setting = true; break; - + case MENU_MDC1200_ID: sprintf(str, "MDC1200\nID\n%04X", g_sub_menu_selection); break; @@ -1094,7 +1099,7 @@ void UI_DisplayMenu(void) } break; } - + case MENU_PON_MSG: strcpy(str, g_sub_menu_pwr_on_msg[g_sub_menu_selection]); break; @@ -1152,7 +1157,7 @@ void UI_DisplayMenu(void) } } - // add the date and time + // add the compiled date and time strcat(str, "\n \n" __DATE__ "\n" __TIME__); break; } @@ -1354,11 +1359,11 @@ void UI_DisplayMenu(void) } if ((g_menu_cursor == MENU_RESET || - g_menu_cursor == MENU_MEM_SAVE || + g_menu_cursor == MENU_MEM_SAVE || g_menu_cursor == MENU_MEM_NAME || g_menu_cursor == MENU_MEM_DEL) && g_ask_for_confirmation) { // display confirmation - strcpy(str, (g_ask_for_confirmation == 1) ? "SURE?" : "WAIT!"); + strcpy(str, (g_ask_for_confirmation == 1) ? "SURE ?" : "WAIT !"); UI_PrintString(str, sub_menu_x1, sub_menu_x2, 5, 8); }