summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoey Castillo <jose.castillo@gmail.com>2021-08-03 11:53:57 -0400
committerJoey Castillo <jose.castillo@gmail.com>2021-08-03 11:53:57 -0400
commit6cb7e38be27435121bd6574c7c5ee4ba12913143 (patch)
tree590310a595288979d5a3f82869e3643ffeb84996
parent9302f182c69af26e2b2a35a5d3004facc8a7e925 (diff)
downloadSensor-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.c12
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;
}