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