Sequential Button (for Arduino) 1.5
Sequential Button library for Arduino documentation
Loading...
Searching...
No Matches
SeqButton.h
Go to the documentation of this file.
1
8
9#ifndef SeqButton_h
10#define SeqButton_h
11
12#include <inttypes.h>
13
14//#define DBG_SEQBUTTON
15
16
21{
22private:
23 uint32_t memTime;
24 uint32_t holdTime;
25 bool butState;
26 uint8_t holdDone :1;
27 uint8_t pusDone :1;
28 uint8_t relDone :1;
29
30 uint8_t Pin;
31 uint32_t timFilter;
32 bool Logic;
33 bool Repeat;
34
35 void (*onPush)(SeqButton*);
36 void (*onRelease)(SeqButton*);
37
38public:
50 void init(const uint8_t pin, void (*cbckON)(SeqButton*), void (*cbckOFF)(SeqButton*), const bool repeat, const bool logic=LOW, const uint32_t filter=50);
51
60 void init(uint8_t pin, void (*cbckON)(SeqButton*), void (*cbckOFF)(SeqButton*)=NULL);
61
66 bool handler(void);
67
71 uint8_t getPin(void) __attribute__((always_inline)) {
72 return Pin; }
73
77 bool getState(void) __attribute__((always_inline)) {
78 return butState; }
79
84 bool getButton(void) __attribute__((always_inline)) {
85 return getState(); }
86
90 uint32_t getHoldTime(void) __attribute__((always_inline)) {
91 return holdTime; }
92};
93
94
95#endif /* SeqButton_h */
Class containing the required methods for handling sequential button.
Definition SeqButton.h:21
uint8_t getPin(void) __attribute__((always_inline))
Get button pin.
Definition SeqButton.h:71
bool handler(void)
Check button state and perform callbacks accordingly.
Definition SeqButton.cpp:55
bool getButton(void) __attribute__((always_inline))
Get button state.
Definition SeqButton.h:84
bool getState(void) __attribute__((always_inline))
Get button state.
Definition SeqButton.h:77
uint32_t getHoldTime(void) __attribute__((always_inline))
Get button hold duration.
Definition SeqButton.h:90
void init(const uint8_t pin, void(*cbckON)(SeqButton *), void(*cbckOFF)(SeqButton *), const bool repeat, const bool logic=LOW, const uint32_t filter=50)
Initialization routine.
Definition SeqButton.cpp:25