aboutsummaryrefslogtreecommitdiff
path: root/src/button.h
diff options
context:
space:
mode:
authorDien-Nhung Nguyen-Phu <kein@kienlab.com>2024-06-02 18:27:36 +0700
committerDien-Nhung Nguyen-Phu <kein@kienlab.com>2024-06-10 19:26:48 +0700
commit799d8e43b54f68c61c7b63e43d4a3487754dfe60 (patch)
tree10e318535df7266e44c9d3ff4d3c4e8fe02cd235 /src/button.h
parentf6d84a1ead1a57574c45bb80b6fd450c5b784e09 (diff)
button: add basic button functionalities
- Provided a way to set handler for each button one-press/long-press - Debouncing with RC filter and Schmitt trigger
Diffstat (limited to 'src/button.h')
-rw-r--r--src/button.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/button.h b/src/button.h
new file mode 100644
index 0000000..234e45b
--- /dev/null
+++ b/src/button.h
@@ -0,0 +1,23 @@
+#ifndef __BUTTON_H__
+#define __BUTTON_H__
+
+#include "CH58x_common.h"
+
+enum keys {
+ KEY1 = 0,
+ KEY2,
+ KEY_INDEX,
+};
+
+#define KEY2_PIN (GPIO_Pin_22) // PB
+#define KEY1_PIN (GPIO_Pin_1) // PA
+
+#define isPressed(key) ((key) ? \
+ !GPIOB_ReadPortPin(KEY2_PIN) : \
+ GPIOA_ReadPortPin(KEY1_PIN))
+
+void btn_onOnePress(int key, void (*handler)(void));
+void btn_onLongPress(int key, void (*handler)(void));
+void btn_init();
+
+#endif /* __BUTTON_H__ */