@@ -142,7 +142,6 @@ class EncButton2 {
142
142
uint8_t tickISR (uint8_t p0 = 0 , uint8_t p1 = 0 , uint8_t p2 = 0 ) {
143
143
if (!_isrFlag) {
144
144
_isrFlag = 1 ;
145
-
146
145
if (_EB_TYPE <= 3 ) { // РЕАЛЬНОЕ УСТРОЙСТВО
147
146
if (_EB_TYPE >= 2 ) poolEnc (fastRead (0 ) | (fastRead (1 ) << 1 )); // энк или энк с кнопкой
148
147
if (_EB_TYPE <= 2 ) { // кнопка или энк с кнопкой
@@ -160,8 +159,8 @@ class EncButton2 {
160
159
if (_btnState || readF (15 )) poolBtn (); // опрос если кнопка нажата или не вышли таймауты
161
160
}
162
161
}
162
+ _isrFlag = 0 ;
163
163
}
164
- _isrFlag = 0 ;
165
164
return EBState;
166
165
}
167
166
@@ -267,9 +266,9 @@ class EncButton2 {
267
266
_prev = state;
268
267
#ifdef EB_HALFSTEP_ENC // полушаговый энкодер
269
268
// спасибо https://github.com/GyverLibs/EncButton/issues/10#issue-1092009489
270
- if ((state == 0x3 || state == 0x0 ) && _ecount != 0 ) {
269
+ if ((state == 0x3 || state == 0x0 ) && _ecount) {
271
270
#else // полношаговый
272
- if (state == 0x3 && _ecount != 0 ) { // защёлкнули позицию
271
+ if (state == 0x3 && _ecount) { // защёлкнули позицию
273
272
#endif
274
273
uint16_t ms = millis () & 0xFFFF ;
275
274
EBState = (_ecount < 0 ) ? 1 : 2 ;
@@ -391,24 +390,25 @@ class EncButton2 {
391
390
392
391
inline void setF (const uint8_t x) __attribute__ ((always_inline)) {flags |= 1 << x;}
393
392
inline void clrF (const uint8_t x) __attribute__ ((always_inline)) {flags &= ~(1 << x);}
394
- inline bool readF (const uint8_t x) __attribute__ ((always_inline)) {return ( flags >> x) & 1 ;}
393
+ inline bool readF (const uint8_t x) __attribute__ ((always_inline)) {return flags & ( 1 << x) ;}
395
394
396
- uint8_t _prev : 2 ;
395
+ uint8_t _amount : 6 ;
396
+ int8_t _dir : 2 ;
397
+
397
398
uint8_t EBState : 4 ;
399
+ uint8_t _prev : 2 ;
398
400
bool _btnState : 1 ;
399
401
bool _encRST : 1 ;
400
- bool _isrFlag : 1 ;
402
+ bool _isrFlag = 0 ;
401
403
uint16_t flags = 0 ;
402
-
403
- #ifdef EB_BETTER_ENC
404
- int8_t _ecount = 0 ;
405
- #endif
406
-
404
+
407
405
uint16_t _debTmr = 0 ;
408
406
uint8_t _holdT = (EB_HOLD >> 7 );
409
- int8_t _dir = 0 ;
410
407
void (*_callback[_EB_MODE ? 14 : 0 ])() = {};
411
- uint8_t _amount = 0 ;
408
+
409
+ #ifdef EB_BETTER_ENC
410
+ int8_t _ecount = 0 ;
411
+ #endif
412
412
413
413
uint8_t _pins[EB_PIN_AM];
414
414
0 commit comments