diff options
author | Joey Castillo <jose.castillo@gmail.com> | 2021-08-03 11:53:57 -0400 |
---|---|---|
committer | Joey Castillo <jose.castillo@gmail.com> | 2021-08-03 11:53:57 -0400 |
commit | 6cb7e38be27435121bd6574c7c5ee4ba12913143 (patch) | |
tree | 590310a595288979d5a3f82869e3643ffeb84996 | |
parent | 9302f182c69af26e2b2a35a5d3004facc8a7e925 (diff) | |
download | Sensor-Watch-6cb7e38be27435121bd6574c7c5ee4ba12913143.tar.gz Sensor-Watch-6cb7e38be27435121bd6574c7c5ee4ba12913143.tar.bz2 Sensor-Watch-6cb7e38be27435121bd6574c7c5ee4ba12913143.zip |
actually debounce button presses
-rw-r--r-- | Sensor Watch Starter Project/app.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Sensor Watch Starter Project/app.c b/Sensor Watch Starter Project/app.c index 30c1b8ea..84cba19e 100644 --- a/Sensor Watch Starter Project/app.c +++ b/Sensor Watch Starter Project/app.c @@ -22,6 +22,7 @@ typedef struct ApplicationState { ApplicationMode mode; LightColor color; uint8_t wake_count; + bool debounce_wait; } ApplicationState; ApplicationState applicationState; @@ -90,6 +91,7 @@ void app_setup() { * a press on one of the buttons). */ void app_prepare_for_sleep() { + applicationState.debounce_wait = false; } /** @@ -107,6 +109,9 @@ void app_wake_from_sleep() { bool app_loop() { // set the LED to a color switch (applicationState.color) { + case COLOR_OFF: + watch_set_led_off(); + break; case COLOR_RED: watch_set_led_red(); break; @@ -116,9 +121,6 @@ bool app_loop() { case COLOR_YELLOW: watch_set_led_yellow(); break; - default: - applicationState.color = COLOR_OFF; - watch_set_led_off(); } // Display the number of times we've woken up (modulo 32 to fit in 2 digits at top right) @@ -147,10 +149,14 @@ bool app_loop() { // Implementations for our callback functions. Replace these with whatever functionality // your app requires. void cb_light_pressed() { + if (applicationState.debounce_wait) return; + applicationState.debounce_wait = true; applicationState.color = (applicationState.color + 1) % 4; } void cb_mode_pressed() { + if (applicationState.debounce_wait) return; + applicationState.debounce_wait = true; applicationState.mode = (applicationState.mode + 1) % 2; } |