From cac83194c6c9352a025bde4b3f374fc2f1ed898c Mon Sep 17 00:00:00 2001 From: sjlongland Date: Fri, 25 Sep 2015 21:26:43 +0000 Subject: [PATCH] sm1000_main: Wait for BACK button release after menu exit. Otherwise we inadvertantly switch modes unexpectedly. git-svn-id: https://svn.code.sf.net/p/freetel/code@2382 01035d8c-6547-0410-b346-abe4f91aad63 --- codec2-dev/stm32/src/sm1000_main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/codec2-dev/stm32/src/sm1000_main.c b/codec2-dev/stm32/src/sm1000_main.c index d09c563d..fbe7207e 100644 --- a/codec2-dev/stm32/src/sm1000_main.c +++ b/codec2-dev/stm32/src/sm1000_main.c @@ -61,6 +61,7 @@ struct switch_t sw_ptt; /*!< Switch driver for PTT buttons */ unsigned int announceTicker = 0; unsigned int menuLEDTicker = 0; unsigned int menuTicker = 0; +unsigned int menuExit = 0; /*! * User preferences @@ -190,12 +191,17 @@ int main(void) { menuTicker = 0; led_pwr(LED_ON); morse_play(&morse_player, NULL); + menuExit = 1; } } } else { uint8_t mode_changed = 0; - if (switch_pressed(&sw_select) > HOLD_DELAY) { + if (menuExit) { + /* We've just exited a menu, wait for release of BACK */ + if (switch_released(&sw_back)) + menuExit = 0; + } else if (switch_pressed(&sw_select) > HOLD_DELAY) { /* Enter the menu */ menu_enter(&menu, &menu_root); menuTicker = MENU_DELAY; -- 2.25.1