JM9 XRCU Board 0.1.2
Libraries API Reference
Loading...
Searching...
No Matches
Buttons.h
Go to the documentation of this file.
1
8
9#ifndef BUTTONS_H
10#define BUTTONS_H
11
12#include <Arduino.h>
13
14#define ENABLE_BUTTON_FALL_MODE
15#define ENABLE_BUTTON_FALL_PULSE_MODE
16#define ENABLE_BUTTON_FALL_PULSE_SECURED_MODE
17#define ENABLE_BUTTON_RISE_MODE
18// #define ENABLE_BUTTON_RISE_PULSE_MODE // disabled due to inaccuracy and instability
19// #define ENABLE_BUTTON_RISE_PULSE_SECURED_MODE // disabled due to inaccuracy and instability
20
26bool is_button_clicked (const uint32_t button_no);
27
33void set_buttons_mode (const uint8_t mode);
34
38enum {
39
46
47 #ifdef ENABLE_BUTTON_FALL_MODE
53 #endif // #ifdef ENABLE_BUTTON_FALL_MODE
54
55 #ifdef ENABLE_BUTTON_FALL_PULSE_MODE
62 #endif // #ifdef ENABLE_BUTTON_FALL_PULSE_MODE
63
64 #ifdef ENABLE_BUTTON_FALL_PULSE_SECURED_MODE
72 #endif // #ifdef ENABLE_BUTTON_FALL_PULSE_SECURED_MODE
73
74 #ifdef ENABLE_BUTTON_RISE_MODE
80 #endif // #ifdef ENABLE_BUTTON_RISE_MODE
81
82 #ifdef ENABLE_BUTTON_RISE_PULSE_MODE
88 button_rise_pulse_mode,
89 #endif // #ifdef ENABLE_BUTTON_RISE_PULSE_MODE
90
91 #ifdef ENABLE_BUTTON_RISE_PULSE_SECURED_MODE
98 button_rise_pulse_secured_mode
99 #endif // #ifdef ENABLE_BUTTON_RISE_PULSE_SECURED_MODE
100};
101
108void button_attach_interrupt (const uint32_t button_no, void (*user_func)(void));
109
115void button_detach_interrupt (const uint32_t button_no);
116
117
118/*
119button_fall_pulse_secured_mode:
120SW1 fall
1211
1220
1230
1240
125SW2 fall
126anti-misclick triggered
1270
1280
1290
130SW1 rise or SW2 rise, whichever later
131anti-misclick unlocked
132*/
133/*
134button_rise_pulse_secured_mode:
135SW1 fall
1360
1370
1380
1390
140SW2 fall
141anti-misclick triggered
1420
1430
1440
145SW1 rise or SW2 rise, whichever later
146anti-misclick unlocked
147*/
148
149#endif
bool is_button_clicked(const uint32_t button_no)
Checks whether a button is clicked.
Definition Buttons.cpp:84
void set_buttons_mode(const uint8_t mode)
Sets the buttons mode.
Definition Buttons.cpp:140
void button_detach_interrupt(const uint32_t button_no)
Detaches the interrupt on a button from the button.
Definition Buttons.cpp:148
@ button_fall_mode
Clicks on every falling edge.
Definition Buttons.h:52
@ button_raw_mode
Clicks whenever button is down.
Definition Buttons.h:45
@ button_rise_mode
Clicks on every rising edge.
Definition Buttons.h:79
@ button_fall_pulse_mode
Clicks on every falling edge and during long pulses.
Definition Buttons.h:61
@ button_fall_pulse_secured_mode
Clicks on every falling edge and during long pulses with anti-misclick.
Definition Buttons.h:71
void button_attach_interrupt(const uint32_t button_no, void(*user_func)(void))
Attaches an interrupt to a button.
Definition Buttons.cpp:144