#include "lights.h"
#define WAKEUP_LIMIT 5 // times 100 ms
+#define SHORT_PRESS_MIN 2 // in jiffies (16 Hz ticks)
+#define SHORT_PRESS_MAX 5
+#define LONG_PRESS_MIN 10
+
static uint16_t button_start[3];
union {
unsigned char all;
} else if (cur && prev) { // --- is still pressed ---
uint16_t duration = jiffies - button_start[button];
- if (duration > 160) {
+ if (duration >= LONG_PRESS_MIN) {
set_status_led(button, on1_pattern);
// acknowledge long press
}
} else if (!cur && prev) { // --- just released ---
uint16_t duration = jiffies - button_start[button];
- if (duration > 6 && duration < 60) {
+ if (duration >= SHORT_PRESS_MIN && duration < SHORT_PRESS_MAX) {
short_press(button);
- } else if (duration > 160) {
+ } else if (duration > LONG_PRESS_MIN) {
set_status_led(button, NULL);
long_press(button);
}