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
- Основная идея работы: "тикнули", а затем вручную через условия опрашиваем нужные действия кнопки/энкодера. Почти все функции опроса имеют механизм "однократного срабатывания", то есть возвращают `true` и автоматически сбрасываются в `false` до наступления следующего события. Таким образом конструкция `if (btn.click())` позволяет выполнить какой-то блок кода однократно по клику. Подробнее разберём ниже.
253
253
254
254
#### Кнопка
255
-
- `press()` - кнопка была нажата (с антидребезгом). Сигналит независимо от остальных функций опроса. *[однократно вернёт true]*
256
-
- `release()` - кнопка была отпущена. Сигналит независимо от остальных функций опроса. *[однократно вернёт true]*
255
+
- `press()` - кнопка была нажата (с антидребезгом). *[однократно вернёт true]*
256
+
- `release()` - кнопка была отпущена. *[однократно вернёт true]*
257
257
- `click()` - кнопка была кликнута, т.е. коротко нажата и отпущена (удерживалась больше времени антидребезга, но меньше таймаута удержания). *[однократно вернёт true]*
258
-
- `held()` - кнопка была удержана дольше настроенного в `setHoldTimeout()` таймаута. *[однократно вернёт true]*
259
-
- `hold()` - кнопка была удержана дольше настроенного в `setHoldTimeout()` таймаута. *[возвращает true, пока удерживается]*
- `hold()` - кнопка была удержана дольше `setHoldTimeout()` таймаута. *[возвращает true, пока удерживается]*
260
260
- `step()` - режим "импульсного удержания": после удержания кнопки дольше таймаута данная функция *[возвращает true с периодом EB_STEP]*. Удобно использовать для пошагового изменения какой-то величины в программе: `if (btn.step()) val++;`.
261
261
- `step(clicks)` - всё то же самое, но функция принимает количество кликов, сделанных до удержания. Это позволяет очень просто контролировать несколько величин одной кнопкой. См. пример *StepMode*.
262
262
- `releaseStep()` - кнопка была отпущена после импульсного удержания. Может использоваться для изменения знака инкремента переменной: удерживаем - переменная увеличивается, отпустили, удерживаем ещё раз - уменьшается. См. пример *StepMode*. *[однократно вернёт true]*
263
263
- `releaseStep(clicks)` - всё то же самое, но функция принимает количество кликов, сделанных до удержания. См. пример *StepMode*. *[однократно вернёт true]*
264
-
- `hasClicks(clicks)` - было сделано указанное количество кликов с периодом менее EB_CLICK. *[однократно вернёт true]*
264
+
- `hasClicks(clicks)` - было сделано указанное количество кликов с периодом менее *EB_CLICK*. *[однократно вернёт true]*
265
265
- `state()` - возвращает теукщее состояние кнопки (сигнал с пина, без антидребезга): `true` - нажата, `false` - не нажата.
266
-
- `hasClicks()` - вернёт количество кликов, сделанных с периодом менее EB_CLICK. В противном случае вернёт 0.
267
-
- `uint8_t clicks` - публичная переменная (член класса), хранит количество сделанных кликов с периодом менее EB_CLICK. Сбрасывается в 0 после нового клика.
266
+
- `hasClicks()` - вернёт количество кликов, сделанных с периодом менее *EB_CLICK*. В противном случае вернёт 0.
267
+
- `uint8_t clicks` - публичная переменная (член класса), хранит количество сделанных кликов с периодом менее *EB_CLICK*. Сбрасывается в 0 после нового клика.
268
268
269
269
#### Энкодер
270
270
- `turn()` - поворот на один щелчок в любую сторону. *[однократно вернёт true]*
271
271
- `turnH()` - поворот на один щелчок в любую сторону с зажатой кнопкой. *[однократно вернёт true]*
272
-
- `fast()` - вернёт `true`, если был совершён быстрый поворот (с периодом менее EB_FAST мс) на один щелчок в любую сторону. *[возвращает true, пока энкодер крутится быстро]*
272
+
- `fast()` - был совершён быстрый поворот (с периодом менее *EB_FAST* мс) на один щелчок в любую сторону. *[возвращает true, пока энкодер крутится быстро]*
273
273
- `right()` - поворот на один щелчок направо. *[однократно вернёт true]*
274
274
- `left()` - поворот на один щелчок налево. *[однократно вернёт true]*
275
275
- `rightH()` - поворот на один щелчок направо с зажатой кнопкой. *[однократно вернёт true]*
0 commit comments