Skip to content

Commit b7f705a

Browse files
committed
upd
1 parent aff09ad commit b7f705a

File tree

7 files changed

+94
-78
lines changed

7 files changed

+94
-78
lines changed

README.md

Lines changed: 70 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
# EncButton
99

10-
|⚠️⚠️⚠️<br>**Новая версия v3 несовместима с предыдущими, смотри [документацию](#docs), [примеры](#example) и краткий [гайд по миграции](#migrate) с v2 на v3!**<br>⚠️⚠️⚠️|
11-
| --- |
10+
| ⚠️⚠️⚠️<br>**Новая версия v3 несовместима с предыдущими, смотри [документацию](#docs), [примеры](#example) и краткий [гайд по миграции](#migrate) с v2 на v3!**<br>⚠️⚠️⚠️ |
11+
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
1212

1313
Лёгкая и очень функциональная библиотека для энкодера с кнопкой, энкодера или кнопки с Arduino
1414
- Кнопка
@@ -187,67 +187,67 @@
187187
188188
| | VirtButton | VirtEncButton | Button | EncButton |
189189
|-----------------|:----------:|:-------------:|:------:|:---------:|
190-
| read | | | | |
191-
| readBtn | | | | ✔ |
192-
| tickRaw | ✔ | ✔ | ✔ | ✔ |
193-
| setHoldTimeout | ✔ | ✔ | ✔ | ✔ |
194-
| setStepTimeout | ✔ | ✔ | ✔ | ✔ |
195-
| setClickTimeout | ✔ | ✔ | ✔ | ✔ |
196-
| setDebTimeout | ✔ | ✔ | ✔ | ✔ |
197-
| setBtnLevel | ✔ | ✔ | ✔ | ✔ |
198-
| pressISR | ✔ | ✔ | ✔ | ✔ |
199-
| reset | ✔ | ✔ | ✔ | ✔ |
200-
| clear | ✔ | ✔ | ✔ | ✔ |
201-
| attach | ✔ | ✔ | ✔ | ✔ |
202-
| detach | ✔ | ✔ | ✔ | ✔ |
203-
| press | ✔ | ✔ | ✔ | ✔ |
204-
| release | ✔ | ✔ | ✔ | ✔ |
205-
| click | ✔ | ✔ | ✔ | ✔ |
206-
| pressing | ✔ | ✔ | ✔ | ✔ |
207-
| hold | ✔ | ✔ | ✔ | ✔ |
208-
| holding | ✔ | ✔ | ✔ | ✔ |
209-
| step | ✔ | ✔ | ✔ | ✔ |
210-
| hasClicks | ✔ | ✔ | ✔ | ✔ |
211-
| getClicks | ✔ | ✔ | ✔ | ✔ |
212-
| getSteps | ✔ | ✔ | ✔ | ✔ |
213-
| releaseHold | ✔ | ✔ | ✔ | ✔ |
214-
| releaseStep | ✔ | ✔ | ✔ | ✔ |
215-
| waiting | ✔ | ✔ | ✔ | ✔ |
216-
| busy | ✔ | ✔ | ✔ | ✔ |
217-
| action | ✔ | ✔ | ✔ | ✔ |
218-
| timeout | ✔ | ✔ | ✔ | ✔ |
219-
| pressFor | ✔ | ✔ | ✔ | ✔ |
220-
| holdFor | ✔ | ✔ | ✔ | ✔ |
221-
| stepFor | ✔ | ✔ | ✔ | ✔ |
190+
| read | | | | |
191+
| readBtn | | | | ✔ |
192+
| tickRaw | ✔ | ✔ | ✔ | ✔ |
193+
| setHoldTimeout | ✔ | ✔ | ✔ | ✔ |
194+
| setStepTimeout | ✔ | ✔ | ✔ | ✔ |
195+
| setClickTimeout | ✔ | ✔ | ✔ | ✔ |
196+
| setDebTimeout | ✔ | ✔ | ✔ | ✔ |
197+
| setBtnLevel | ✔ | ✔ | ✔ | ✔ |
198+
| pressISR | ✔ | ✔ | ✔ | ✔ |
199+
| reset | ✔ | ✔ | ✔ | ✔ |
200+
| clear | ✔ | ✔ | ✔ | ✔ |
201+
| attach | ✔ | ✔ | ✔ | ✔ |
202+
| detach | ✔ | ✔ | ✔ | ✔ |
203+
| press | ✔ | ✔ | ✔ | ✔ |
204+
| release | ✔ | ✔ | ✔ | ✔ |
205+
| click | ✔ | ✔ | ✔ | ✔ |
206+
| pressing | ✔ | ✔ | ✔ | ✔ |
207+
| hold | ✔ | ✔ | ✔ | ✔ |
208+
| holding | ✔ | ✔ | ✔ | ✔ |
209+
| step | ✔ | ✔ | ✔ | ✔ |
210+
| hasClicks | ✔ | ✔ | ✔ | ✔ |
211+
| getClicks | ✔ | ✔ | ✔ | ✔ |
212+
| getSteps | ✔ | ✔ | ✔ | ✔ |
213+
| releaseHold | ✔ | ✔ | ✔ | ✔ |
214+
| releaseStep | ✔ | ✔ | ✔ | ✔ |
215+
| waiting | ✔ | ✔ | ✔ | ✔ |
216+
| busy | ✔ | ✔ | ✔ | ✔ |
217+
| action | ✔ | ✔ | ✔ | ✔ |
218+
| timeout | ✔ | ✔ | ✔ | ✔ |
219+
| pressFor | ✔ | ✔ | ✔ | ✔ |
220+
| holdFor | ✔ | ✔ | ✔ | ✔ |
221+
| stepFor | ✔ | ✔ | ✔ | ✔ |
222222
</details>
223223
224224
<details>
225225
<summary>Таблица функций энкодера</summary>
226226
227227
| | VirtEncoder | Encoder | VirtEncButton | EncButton |
228228
|----------------|:-----------:|:-------:|:-------------:|:---------:|
229-
| readEnc | | | | ✔ |
230-
| initEnc | ✔ | ✔ | ✔ | ✔ |
231-
| setEncReverse | ✔ | ✔ | ✔ | ✔ |
232-
| setEncType | ✔ | ✔ | ✔ | ✔ |
233-
| setEncISR | ✔ | ✔ | ✔ | ✔ |
234-
| clear | ✔ | ✔ | ✔ | ✔ |
235-
| turn | ✔ | ✔ | ✔ | ✔ |
236-
| dir | ✔ | ✔ | ✔ | ✔ |
237-
| tickRaw | ✔ | ✔ | ✔ | ✔ |
238-
| pollEnc | ✔ | ✔ | ✔ | ✔ |
239-
| counter | ✔ | ✔ | ✔ | ✔ |
240-
| setFastTimeout | | | ✔ | ✔ |
241-
| turnH | | | ✔ | ✔ |
242-
| fast | | | ✔ | ✔ |
243-
| right | | | ✔ | ✔ |
244-
| left | | | ✔ | ✔ |
245-
| rightH | | | ✔ | ✔ |
246-
| leftH | | | ✔ | ✔ |
247-
| action | | | ✔ | ✔ |
248-
| timeout | | | ✔ | ✔ |
249-
| attach | | | ✔ | ✔ |
250-
| detach | | | ✔ | ✔ |
229+
| readEnc | | | | ✔ |
230+
| initEnc | ✔ | ✔ | ✔ | ✔ |
231+
| setEncReverse | ✔ | ✔ | ✔ | ✔ |
232+
| setEncType | ✔ | ✔ | ✔ | ✔ |
233+
| setEncISR | ✔ | ✔ | ✔ | ✔ |
234+
| clear | ✔ | ✔ | ✔ | ✔ |
235+
| turn | ✔ | ✔ | ✔ | ✔ |
236+
| dir | ✔ | ✔ | ✔ | ✔ |
237+
| tickRaw | ✔ | ✔ | ✔ | ✔ |
238+
| pollEnc | ✔ | ✔ | ✔ | ✔ |
239+
| counter | ✔ | ✔ | ✔ | ✔ |
240+
| setFastTimeout | | | ✔ | ✔ |
241+
| turnH | | | ✔ | ✔ |
242+
| fast | | | ✔ | ✔ |
243+
| right | | | ✔ | ✔ |
244+
| left | | | ✔ | ✔ |
245+
| rightH | | | ✔ | ✔ |
246+
| leftH | | | ✔ | ✔ |
247+
| action | | | ✔ | ✔ |
248+
| timeout | | | ✔ | ✔ |
249+
| attach | | | ✔ | ✔ |
250+
| detach | | | ✔ | ✔ |
251251
</details>
252252
253253
<details>
@@ -1217,22 +1217,29 @@ void loop() {
12171217
- Объявить соответствующий дефайн перед подключением библиотеки
12181218
- `EB_CUSTOM_READ` - для своей функции чтения пина
12191219
- `EB_CUSTOM_UPTIME` - для своего аналога millis()
1220+
- `EB_CUSTOM_MODE` - для своего аналога pinMode()
12201221
- Реализовать соответствующую функцию в .cpp или .ino файле
12211222
- `EB_read` - для своей функции чтения пина
12221223
- `EB_uptime` - для своего аналога millis()
1224+
- `EB_mode` - для своего аналога pinMode
12231225

12241226
Пример:
12251227

12261228
```cpp
12271229
#define EB_CUSTOM_READ
1230+
#define EB_CUSTOM_MODE
12281231
#define EB_CUSTOM_UPTIME
12291232

12301233
#include <EncButton.h>
12311234

1232-
bool EB_read(const uint8_t pin) {
1235+
bool EB_read(uint8_t pin) {
12331236
return digitalRead(pin);
12341237
}
12351238

1239+
void EB_mode(uint8_t pin, uint8_t mode) {
1240+
pinMode(pin, mode);
1241+
}
1242+
12361243
uint32_t EB_uptime() {
12371244
return millis();
12381245
}
@@ -1351,12 +1358,12 @@ EncoderT<enc0, enc1> e(mode); // + режим пинов энкодера (у
13511358
```
13521359
13531360
### Функции
1354-
| v2 | v3 |
1355-
|-----------|--------------|
1356-
| `held()` | `hold()` |
1357-
| `hold()` | `holding()` |
1358-
| `state()` | `pressing()` |
1359-
|`setPins()`| `init()` |
1361+
| v2 | v3 |
1362+
|-------------|--------------|
1363+
| `held()` | `hold()` |
1364+
| `hold()` | `holding()` |
1365+
| `state()` | `pressing()` |
1366+
| `setPins()` | `init()` |
13601367
13611368
- Изменился порядок указания пинов (см. доку выше)
13621369
- `clearFlags()` заменена на `clear()` (сбросить флаги событий) и `reset()` (сбросить системные флаги обработки, закончить обработку)

keywords.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ EB_FAST_TIME KEYWORD1
2626

2727
EB_NO_GYVER_IO KEYWORD1
2828
EB_CUSTOM_READ KEYWORD1
29+
EB_CUSTOM_MODE KEYWORD1
2930
EB_CUSTOM_UPTIME KEYWORD1
3031

3132
#######################################
@@ -34,6 +35,7 @@ EB_CUSTOM_UPTIME KEYWORD1
3435

3536
EB_read KEYWORD2
3637
EB_uptime KEYWORD2
38+
EB_mode KEYWORD2
3739

3840
setHoldTimeout KEYWORD2
3941
setStepTimeout KEYWORD2

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=EncButton
2-
version=3.5.0
2+
version=3.5.1
33
author=AlexGyver <[email protected]>
44
maintainer=AlexGyver <[email protected]>
55
sentence=Light and powerful library for button and encoder operation for Arduino

src/core/Button.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class Button : public VirtButton {
1414
// указать пин и его режим работы
1515
void init(uint8_t npin = 0, uint8_t mode = INPUT_PULLUP, uint8_t btnLevel = LOW) {
1616
pin = npin;
17-
pinMode(pin, mode);
17+
EB_mode(pin, mode);
1818
setBtnLevel(btnLevel);
1919
}
2020

@@ -47,7 +47,7 @@ class ButtonT : public VirtButton {
4747

4848
// указать режим работы пина
4949
void init(uint8_t mode = INPUT_PULLUP, uint8_t btnLevel = LOW) {
50-
pinMode(PIN, mode);
50+
EB_mode(PIN, mode);
5151
setBtnLevel(btnLevel);
5252
}
5353

src/core/EncButton.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class EncButton : public VirtEncButton {
1717
e0 = encA;
1818
e1 = encB;
1919
b = btn;
20-
pinMode(e0, modeEnc);
21-
pinMode(e1, modeEnc);
22-
pinMode(b, modeBtn);
20+
EB_mode(e0, modeEnc);
21+
EB_mode(e1, modeEnc);
22+
EB_mode(b, modeBtn);
2323
setBtnLevel(btnLevel);
2424
initEnc(readEnc());
2525
}
@@ -69,9 +69,9 @@ class EncButtonT : public VirtEncButton {
6969

7070
// настроить пины (pinmode энк, pinmode кнопка)
7171
void init(uint8_t modeEnc = INPUT, uint8_t modeBtn = INPUT_PULLUP, uint8_t btnLevel = LOW) {
72-
pinMode(ENCA, modeEnc);
73-
pinMode(ENCB, modeEnc);
74-
pinMode(BTN, modeBtn);
72+
EB_mode(ENCA, modeEnc);
73+
EB_mode(ENCB, modeEnc);
74+
EB_mode(BTN, modeBtn);
7575
setBtnLevel(btnLevel);
7676
initEnc(readEnc());
7777
}

src/core/Encoder.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ class Encoder : public VirtEncoder {
1616
void init(uint8_t encA = 0, uint8_t encB = 0, uint8_t mode = INPUT) {
1717
e0 = encA;
1818
e1 = encB;
19-
pinMode(e0, mode);
20-
pinMode(e1, mode);
19+
EB_mode(e0, mode);
20+
EB_mode(e1, mode);
2121
initEnc(readEnc());
2222
}
2323

@@ -58,8 +58,8 @@ class EncoderT : public VirtEncoder {
5858

5959
// указать режим работы пинов
6060
void init(uint8_t mode = INPUT) {
61-
pinMode(ENCA, mode);
62-
pinMode(ENCB, mode);
61+
EB_mode(ENCA, mode);
62+
EB_mode(ENCB, mode);
6363
initEnc(readEnc());
6464
}
6565

src/core/utils.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
#include <GyverIO.h>
66
#endif
77

8-
bool EB_read(const uint8_t pin);
8+
bool EB_read(uint8_t pin);
9+
void EB_mode(uint8_t pin, uint8_t mode);
910
uint32_t EB_uptime();
1011

1112
// ====================
1213

1314
#ifndef EB_CUSTOM_READ
14-
bool EB_read(const uint8_t pin) {
15+
bool EB_read(uint8_t pin) {
1516
#ifndef EB_NO_GYVER_IO
1617
return gio::read(pin);
1718
#else
@@ -20,6 +21,12 @@ bool EB_read(const uint8_t pin) {
2021
}
2122
#endif
2223

24+
#ifndef EB_CUSTOM_MODE
25+
void EB_mode(uint8_t pin, uint8_t mode) {
26+
pinMode(pin, mode);
27+
}
28+
#endif
29+
2330
#ifndef EB_CUSTOM_UPTIME
2431
uint32_t EB_uptime() {
2532
return millis();

0 commit comments

Comments
 (0)