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() {
34
34
M5.update ();
35
35
36
36
// 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 ) ) {
38
38
M5.Lcd .print (' A' );
39
- } else if (M5.BtnB .wasReleased ()) {
39
+ } else if (M5.BtnB .wasReleased () || M5. BtnB . pressedFor ( 1000 , 200 ) ) {
40
40
M5.Lcd .print (' B' );
41
- } else if (M5.BtnC .wasReleased ()) {
41
+ } else if (M5.BtnC .wasReleased () || M5. BtnC . pressedFor ( 1000 , 200 ) ) {
42
42
M5.Lcd .print (' C' );
43
43
} else if (M5.BtnB .wasReleasefor (700 )) {
44
44
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) {
120
120
return (_state == 1 && _time - _lastChange >= ms) ? 1 : 0 ;
121
121
}
122
122
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
+
123
131
uint8_t Button::releasedFor (uint32_t ms) {
124
132
return (_state == 0 && _time - _lastChange >= ms) ? 1 : 0 ;
125
133
}
Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ class Button {
24
24
uint8_t wasPressed ();
25
25
uint8_t wasReleased ();
26
26
uint8_t pressedFor (uint32_t ms);
27
+ uint8_t pressedFor (uint32_t ms, uint32_t continuous_time);
27
28
uint8_t releasedFor (uint32_t ms);
28
29
uint8_t wasReleasefor (uint32_t ms);
29
30
uint32_t lastChange ();
@@ -38,6 +39,7 @@ class Button {
38
39
uint32_t _time; // time of current state (all times are in ms)
39
40
uint32_t _lastTime; // time of previous state
40
41
uint32_t _lastChange; // time of last state change
42
+ uint32_t _lastLongPress; // time of last state change
41
43
uint32_t _dbTime; // debounce time
42
44
uint32_t _pressTime; // press time
43
45
uint32_t _hold_time; // hold time call wasreleasefor
You can’t perform that action at this time.
0 commit comments