]> git.scottworley.com Git - tattlekey/commitdiff
client: Work in 1-second granularity
authorScott Worley <scottworley@scottworley.com>
Mon, 9 Oct 2023 07:49:54 +0000 (00:49 -0700)
committerScott Worley <scottworley@scottworley.com>
Wed, 11 Oct 2023 01:48:33 +0000 (18:48 -0700)
client/config.c
client/config.h
client/tattlekey.c

index de300ea29a468288d0dfe4f0d5e48381ac23ba56..a9dc66e05ee04613eb2e055652b9b0cec63ae80d 100644 (file)
@@ -20,7 +20,7 @@ uint button_pin = 18;
 
 /* Don't bother reporting each separate button press when it is pressed many
  * times in short succession.  (We also use this to de-bounce. :) */
 
 /* Don't bother reporting each separate button press when it is pressed many
  * times in short succession.  (We also use this to de-bounce. :) */
-u32_t minimum_microseconds_between_button_presses = 1000000;
+u32_t minimum_seconds_between_button_presses = 1;
 
 /* Send each report multiple times. */
 uint resend_count = 5;
 
 /* Send each report multiple times. */
 uint resend_count = 5;
index fefe7e96703665428d15f21f8163e6727a256651..66e33a448ad4306db13937d81361628ac169bdc9 100644 (file)
@@ -23,7 +23,7 @@ extern uint button_pin;
 
 /* Don't bother reporting each separate button press when it is pressed many
  * times in short succession.  (We also use this to de-bounce. :) */
 
 /* Don't bother reporting each separate button press when it is pressed many
  * times in short succession.  (We also use this to de-bounce. :) */
-extern u32_t minimum_microseconds_between_button_presses;
+extern u32_t minimum_seconds_between_button_presses;
 
 /* Send each report multiple times. */
 extern uint resend_count;
 
 /* Send each report multiple times. */
 extern uint resend_count;
index 9e7b4b598d9c5d0f5c6c9e4a6e77c9d3845eaa65..842561d22e47316f81b1a1c4a8500fadbec97a89 100644 (file)
@@ -9,12 +9,14 @@
 
 queue_t queue;
 
 
 queue_t queue;
 
+uint32_t time_s() { return time_us_64() / 1000000ul; }
+
 static void button_pressed() {
   /* This runs in interrupt context; don't linger.  */
   static uint64_t last_button_press_time = 0;
 static void button_pressed() {
   /* This runs in interrupt context; don't linger.  */
   static uint64_t last_button_press_time = 0;
-  uint64_t now = time_us_64();
-  uint64_t time_since_last_press = now - last_button_press_time;
-  if (time_since_last_press > minimum_microseconds_between_button_presses) {
+  uint32_t now = time_s();
+  uint32_t time_since_last_press = now - last_button_press_time;
+  if (time_since_last_press >= minimum_seconds_between_button_presses) {
     last_button_press_time = now;
     char zero = '\0';
     /* We don't check for failure (full queue) here because there's not much to
     last_button_press_time = now;
     char zero = '\0';
     /* We don't check for failure (full queue) here because there's not much to