You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// было действие с кнопки или энкодера, вернёт код события [событие]
467
468
uint16_t action();
468
469
@@ -822,6 +823,7 @@ eb.counter = 0; // обнулять
822
823
#### Обработка энкодера с кнопкой
823
824
- Поворот энкодера при зажатой кнопке снимает и блокирует все последующие события и клики, за исключением события `release`. Состояния нажатой кнопки не изменяются
824
825
- Поворот энкодера также влияет на системный таймаут (функция `timeout()`) - сработает через указанное время после поворота энкодера
826
+
- Счётчик кликов доступен при нажатом повороте: несколько кликов, зажатие кнопки, поворот
825
827
826
828
<aid="preclicks"></a>
827
829
@@ -1214,11 +1216,24 @@ if (enc.turn()) {
1214
1216
var += enc.fast() ? 10 : 1;
1215
1217
1216
1218
// меняем с шагом 1 при обычном повороте, 10 при нажатом
1217
-
var += enc.encHolding() ? 10 : 1;
1219
+
var += enc.pressing() ? 10 : 1;
1218
1220
1219
1221
// меняем одну переменную при повороте, другую - при нажатом повороте
1220
-
if (enc.encHolding()) var0++;
1222
+
if (enc.pressing()) var0++;
1221
1223
else var1++;
1224
+
1225
+
// если кнопка нажата - доступны предварительные клики
1226
+
// Выбираем переменную для изменения по предв. кликам
1227
+
if (enc.pressing()) {
1228
+
switch (enc.getClicks()) {
1229
+
case 1: var0 += enc.dir();
1230
+
break;
1231
+
case 2: var1 += enc.dir();
1232
+
break;
1233
+
case 3: var2 += enc.dir();
1234
+
break;
1235
+
}
1236
+
}
1222
1237
}
1223
1238
1224
1239
// импульсное удержание на каждом шаге инкрементирует переменную
@@ -1364,9 +1379,11 @@ void loop() {
1364
1379
Serial.print(", fast ");
1365
1380
Serial.print(eb.fast());
1366
1381
Serial.print(", hold ");
1367
-
Serial.print(eb.encHolding());
1382
+
Serial.print(eb.pressing());
1368
1383
Serial.print(", counter ");
1369
-
Serial.println(eb.counter);
1384
+
Serial.print(eb.counter);
1385
+
Serial.print(", clicks ");
1386
+
Serial.println(eb.getClicks());
1370
1387
}
1371
1388
1372
1389
// обработка поворота раздельная
@@ -1465,7 +1482,7 @@ void callback() {
1465
1482
Serial.print(" ");
1466
1483
Serial.print(eb.fast());
1467
1484
Serial.print(" ");
1468
-
Serial.println(eb.encHolding());
1485
+
Serial.println(eb.pressing());
1469
1486
break;
1470
1487
case EB_REL_HOLD:
1471
1488
Serial.println("release hold");
@@ -1633,6 +1650,9 @@ void loop() {
1633
1650
- v3.3
1634
1651
- Добавлены функции получения времени удержания pressFor(), holdFor(), stepFor() (отключаемые)
0 commit comments