* MomentaryButton: pullupdown param moved to constructor

This commit is contained in:
Scott Powell 2025-08-12 10:01:35 +10:00
parent c8bbec6549
commit e84e3066ff
2 changed files with 7 additions and 6 deletions

View file

@ -1,17 +1,18 @@
#include "MomentaryButton.h" #include "MomentaryButton.h"
MomentaryButton::MomentaryButton(int8_t pin, int long_press_millis, bool reverse) { MomentaryButton::MomentaryButton(int8_t pin, int long_press_millis, bool reverse, bool pulldownup) {
_pin = pin; _pin = pin;
_reverse = reverse; _reverse = reverse;
_pull = pulldownup;
down_at = 0; down_at = 0;
prev = _reverse ? HIGH : LOW; prev = _reverse ? HIGH : LOW;
cancel = 0; cancel = 0;
_long_millis = long_press_millis; _long_millis = long_press_millis;
} }
void MomentaryButton::begin(bool pulldownup) { void MomentaryButton::begin() {
if (_pin >= 0) { if (_pin >= 0) {
pinMode(_pin, pulldownup ? (_reverse ? INPUT_PULLUP : INPUT_PULLDOWN) : INPUT); pinMode(_pin, _pull ? (_reverse ? INPUT_PULLUP : INPUT_PULLDOWN) : INPUT);
} }
} }

View file

@ -9,15 +9,15 @@
class MomentaryButton { class MomentaryButton {
int8_t _pin; int8_t _pin;
int8_t prev, cancel; int8_t prev, cancel;
bool _reverse; bool _reverse, _pull;
int _long_millis; int _long_millis;
unsigned long down_at; unsigned long down_at;
bool isPressed(int level) const; bool isPressed(int level) const;
public: public:
MomentaryButton(int8_t pin, int long_press_mills=0, bool reverse=false); MomentaryButton(int8_t pin, int long_press_mills=0, bool reverse=false, bool pulldownup=false);
void begin(bool pulldownup=false); void begin();
int check(bool repeat_click=false); // returns one of BUTTON_EVENT_* int check(bool repeat_click=false); // returns one of BUTTON_EVENT_*
void cancelClick(); // suppress next BUTTON_EVENT_CLICK (if already in DOWN state) void cancelClick(); // suppress next BUTTON_EVENT_CLICK (if already in DOWN state)
uint8_t getPin() { return _pin; } uint8_t getPin() { return _pin; }