diff options
| author | Dien-Nhung Nguyen-Phu <kein@kienlab.com> | 2024-06-02 18:27:36 +0700 |
|---|---|---|
| committer | Dien-Nhung Nguyen-Phu <kein@kienlab.com> | 2024-06-10 19:26:48 +0700 |
| commit | 799d8e43b54f68c61c7b63e43d4a3487754dfe60 (patch) | |
| tree | 10e318535df7266e44c9d3ff4d3c4e8fe02cd235 /src/button.h | |
| parent | f6d84a1ead1a57574c45bb80b6fd450c5b784e09 (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.h | 23 |
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__ */ |