diff --git a/micropython/examples/badger2040/badger_os.py b/micropython/examples/badger2040/badger_os.py index 928cfa8e..7fb321ea 100644 --- a/micropython/examples/badger2040/badger_os.py +++ b/micropython/examples/badger2040/badger_os.py @@ -112,8 +112,6 @@ def launch(file): def quit_to_launcher(pin): if button_a.value() and button_c.value(): - state_clear_running() - time.sleep(0.1) # Needed to stop write fail machine.reset() button_a.irq(trigger=machine.Pin.IRQ_RISING, handler=quit_to_launcher) diff --git a/micropython/examples/badger2040/launcher.py b/micropython/examples/badger2040/launcher.py index 14b94593..f003a940 100644 --- a/micropython/examples/badger2040/launcher.py +++ b/micropython/examples/badger2040/launcher.py @@ -160,10 +160,15 @@ def render(): display.update() -def launch_example(index): - while display.pressed(badger2040.BUTTON_A) or display.pressed(badger2040.BUTTON_B) or display.pressed(badger2040.BUTTON_C) or display.pressed(badger2040.BUTTON_UP) or display.pressed(badger2040.BUTTON_DOWN): +def wait_for_user_to_release_buttons(): + pr = display.pressed + while pr(badger2040.BUTTON_A) or pr(badger2040.BUTTON_B) or pr(badger2040.BUTTON_C) or pr(badger2040.BUTTON_UP) or pr(badger2040.BUTTON_DOWN): time.sleep(0.01) + +def launch_example(index): + wait_for_user_to_release_buttons() + file = examples[(state["page"] * 3) + index][0] for k in locals().keys(): @@ -212,6 +217,7 @@ def button(pin): if exited_to_launcher or not woken_by_button: + wait_for_user_to_release_buttons() display.update_speed(badger2040.UPDATE_MEDIUM) render()