Skip to content

Commit

Permalink
upd
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexGyver committed Feb 2, 2021
1 parent f95a034 commit d212142
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 26 deletions.
27 changes: 13 additions & 14 deletions GyverButton/GyverButton.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#include "GyverButton.h"
#include <Arduino.h>

// ==================== CONSTRUCTOR ====================
GButton::GButton(int8_t pin, bool type, bool dir) {
Expand Down Expand Up @@ -87,47 +86,47 @@ boolean GButton::state() {
boolean GButton::isSingle() {
if (flags.tickMode) GButton::tick();
if (flags.counter_flag && last_counter == 1) {
// last_counter = 0;
// flags.counter_flag = false;
// last_counter = 0;
// flags.counter_flag = false;
flags.counter_reset = true;
return true;
} else return false;
}
boolean GButton::isDouble() {
if (flags.tickMode) GButton::tick();
if (flags.counter_flag && last_counter == 2) {
// flags.counter_flag = false;
// last_counter = 0;
// flags.counter_flag = false;
// last_counter = 0;
flags.counter_reset = true;
return true;
} else return false;
}
boolean GButton::isTriple() {
if (flags.tickMode) GButton::tick();
if (flags.counter_flag && last_counter == 3) {
// flags.counter_flag = false;
// last_counter = 0;
// flags.counter_flag = false;
// last_counter = 0;
flags.counter_reset = true;
return true;
} else return false;
}
boolean GButton::hasClicks() {
if (flags.tickMode) GButton::tick();
if (flags.counter_flag) {
// flags.counter_flag = false;
// flags.counter_flag = false;
flags.counter_reset = true;
return true;
} else return false;
}
uint8_t GButton::getClicks() {
byte thisCount = last_counter;
// last_counter = 0;
flags.counter_reset = true;
return thisCount;
// byte thisCount = last_counter; // Исключено 14.01.2021
// last_counter = 0;
flags.counter_reset = true;
return last_counter; // return thisCount; (замена) 14.01.2021
}
uint8_t GButton::getHoldClicks() {
if (flags.tickMode) GButton::tick();
return flags.hold_flag ? last_hold_counter : 0;
return last_hold_counter; //return flags.hold_flag ? last_hold_counter : 0; (Замена) 14.01.2021
}
boolean GButton::isStep(byte clicks) {
if (flags.tickMode) GButton::tick();
Expand Down Expand Up @@ -217,7 +216,7 @@ void GButton::tick() {
}

// сброс накликивания //Добавлено
if(flags.counter_reset) {
if (flags.counter_reset) {
last_counter = 0;
flags.counter_flag = false;
flags.counter_reset = false;
Expand Down
12 changes: 6 additions & 6 deletions GyverButton/GyverButton.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#ifndef GyverButton_h
#define GyverButton_h
#pragma once
#include <Arduino.h>

/*
Expand Down Expand Up @@ -27,6 +26,8 @@
- Любой таймаут удержания
- Single, Double и Triple теперь не мешают hasClicks и getClicks и работают совместно
- isStep() тоже теперь ничего не мешает и он работает более корректно
Версия 3.8: исправления от Dryundel:
*/

#if defined(__AVR__)
Expand Down Expand Up @@ -64,7 +65,7 @@ typedef struct {
#define AUTO 1

// Варианты инициализации:
// GButton btn; // без привязки к пину (виртуальная кнопка) и без указания типа (по умолч. HIGH_PULL и NORM_OPEN)
// GButton btn; // без привязки к пину (виртуальная кнопка) и без указания типа (по умолч. LOW_PULL и NORM_OPEN)
// GButton btn(пин); // с привязкой к пину и без указания типа (по умолч. HIGH_PULL и NORM_OPEN)
// GButton btn(пин, тип подключ.); // с привязкой к пину и указанием типа подключения (HIGH_PULL / LOW_PULL) и без указания типа кнопки (по умолч. NORM_OPEN)
// GButton btn(пин, тип подключ., тип кнопки); // с привязкой к пину и указанием типа подключения (HIGH_PULL / LOW_PULL) и типа кнопки (NORM_OPEN / NORM_CLOSE)
Expand All @@ -90,7 +91,7 @@ class GButton {
// AUTO - tick() входит во все остальные функции и опрашивается сама

void tick(); // опрос кнопки
void tick(boolean state); // опрос внешнего значения (0 нажато, 1 не нажато) (для матричных, резистивных клавиатур и джойстиков)
void tick(boolean state); // опрос внешнего значения (1 нажато, 0 не нажато) (для матричных, резистивных клавиатур и джойстиков)

boolean isPress(); // возвращает true при нажатии на кнопку. Сбрасывается после вызова
boolean isRelease(); // возвращает true при отпускании кнопки. Сбрасывается после вызова
Expand Down Expand Up @@ -126,5 +127,4 @@ class GButton {
volatile uint8_t *_pin_reg;
volatile uint8_t _bit_mask;
#endif
};
#endif
};
2 changes: 1 addition & 1 deletion GyverButton/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=GyverButton
version=3.7
version=3.8
author=AlexGyver <[email protected]>
maintainer=AlexGyver <[email protected]>
sentence=Advanced library for button.
Expand Down
4 changes: 2 additions & 2 deletions GyverEncoder/GyverEncoder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -336,13 +336,13 @@ void Encoder::tick() {

if (encState != 0) {
flags.isTurn_f = true;
if (thisMls - fast_timer < _fast_timeout) {
if (!SW_state && thisMls - fast_timer < _fast_timeout) {
if (encState == 1) flags.isFastL_f = true;
else if (encState == 2) flags.isFastR_f = true;
fast_timer = thisMls;
} else fast_timer = thisMls;
#ifdef ENC_WITH_BUTTON
if (flags.use_button) if (SW_state) encState += 2;
if (flags.use_button && SW_state) encState += 2;
#endif
}
prevState = curState;
Expand Down
1 change: 1 addition & 0 deletions GyverEncoder/GyverEncoder.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
- 4.6: BINARY_ALGORITHM пофикшен для TYPE1, добавлена isReleaseHold
- 4.7: Исправлен случайный нажатый поворот в BINARY_ALGORITHM
- 4.8: увеличена производительность для AVR Arduino
- 4.9: быстрый поворот отключен если кнопка удерживается
*/
// ========= КОНСТАНТЫ ==========
#define ENC_NO_BUTTON -1 // константа для работы без пина
Expand Down
2 changes: 1 addition & 1 deletion GyverEncoder/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=GyverEncoder
version=4.8
version=4.9
author=AlexGyver <[email protected]>
maintainer=AlexGyver <[email protected]>
sentence=Advanced library for encoder.
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ float getTemp(void); // получить температуру

<a id="GyverButton"></a>
![Logo](/logos/btnLogo.png)
### GyverButton v3.7 [СКАЧАТЬ](https://github.com/AlexGyver/GyverLibs/releases/download/GyverButton/GyverButton.zip), [ДОКУМЕНТАЦИЯ](https://alexgyver.ru/gyverbutton/)
### GyverButton v3.8 [СКАЧАТЬ](https://github.com/AlexGyver/GyverLibs/releases/download/GyverButton/GyverButton.zip), [ДОКУМЕНТАЦИЯ](https://alexgyver.ru/gyverbutton/)
Библиотека для многофункциональной отработки нажатия кнопок с Arduino. Возможности:
- Работа с нормально замкнутыми и нормально разомкнутыми кнопками
- Работа с подключением PULL_UP и PULL_DOWN
Expand Down Expand Up @@ -661,7 +661,7 @@ void resetStates(); // сбрасывает все is-флаги и счёт
<a id="GyverEncoder "></a>
![Logo](/logos/encLogo.png)
### GyverEncoder v4.8 [СКАЧАТЬ](https://github.com/AlexGyver/GyverLibs/releases/download/GyverEncoder/GyverEncoder.zip), [ДОКУМЕНТАЦИЯ](https://alexgyver.ru/encoder/)
### GyverEncoder v4.9 [СКАЧАТЬ](https://github.com/AlexGyver/GyverLibs/releases/download/GyverEncoder/GyverEncoder.zip), [ДОКУМЕНТАЦИЯ](https://alexgyver.ru/encoder/)
Библиотека для отработки энкодера с Arduino. Возможности:
- Отработка поворота с антидребезгом
- Отработка нажатия кнопки с антидребезгом
Expand Down

0 comments on commit d212142

Please sign in to comment.