File tree Expand file tree Collapse file tree 3 files changed +13
-3
lines changed Expand file tree Collapse file tree 3 files changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -34,11 +34,11 @@ void loop() {
3434 M5.update ();
3535
3636 // if you want to use Releasefor("was released for"), use .wasReleasefor(int time) below
37- if (M5.BtnA .wasReleased ()) {
37+ if (M5.BtnA .wasReleased () || M5. BtnA . pressedFor ( 1000 , 200 ) ) {
3838 M5.Lcd .print (' A' );
39- } else if (M5.BtnB .wasReleased ()) {
39+ } else if (M5.BtnB .wasReleased () || M5. BtnB . pressedFor ( 1000 , 200 ) ) {
4040 M5.Lcd .print (' B' );
41- } else if (M5.BtnC .wasReleased ()) {
41+ } else if (M5.BtnC .wasReleased () || M5. BtnC . pressedFor ( 1000 , 200 ) ) {
4242 M5.Lcd .print (' C' );
4343 } else if (M5.BtnB .wasReleasefor (700 )) {
4444 M5.Lcd .clear (BLACK);
Original file line number Diff line number Diff line change @@ -120,6 +120,14 @@ uint8_t Button::pressedFor(uint32_t ms) {
120120 return (_state == 1 && _time - _lastChange >= ms) ? 1 : 0 ;
121121}
122122
123+ uint8_t Button::pressedFor (uint32_t ms, uint32_t continuous_time) {
124+ if (_state == 1 && _time - _lastChange >= ms && _time - _lastLongPress >= continuous_time) {
125+ _lastLongPress = _time;
126+ return 1 ;
127+ }
128+ return 0 ;
129+ }
130+
123131uint8_t Button::releasedFor (uint32_t ms) {
124132 return (_state == 0 && _time - _lastChange >= ms) ? 1 : 0 ;
125133}
Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ class Button {
2424 uint8_t wasPressed ();
2525 uint8_t wasReleased ();
2626 uint8_t pressedFor (uint32_t ms);
27+ uint8_t pressedFor (uint32_t ms, uint32_t continuous_time);
2728 uint8_t releasedFor (uint32_t ms);
2829 uint8_t wasReleasefor (uint32_t ms);
2930 uint32_t lastChange ();
@@ -38,6 +39,7 @@ class Button {
3839 uint32_t _time; // time of current state (all times are in ms)
3940 uint32_t _lastTime; // time of previous state
4041 uint32_t _lastChange; // time of last state change
42+ uint32_t _lastLongPress; // time of last state change
4143 uint32_t _dbTime; // debounce time
4244 uint32_t _pressTime; // press time
4345 uint32_t _hold_time; // hold time call wasreleasefor
You can’t perform that action at this time.
0 commit comments