@AAGR
Занимаюсь программированиям

Как правильно сделать isRelease?

Работаю с библиотекой Gaver Button. Очень хорошая с моей точки зрения библиотека, но нашлась проблема с которой я не могу поладить. Вот набросок проблемы:
#define BTN_PIN 2 
#include "GyverButton.h"
GButton butt1(BTN_PIN);

boolean flag = true;

void setup() {
  Serial.begin(9600);
}

void loop() {
  butt1.tick();
  
  if (butt1.isStep()) { // Удержание
    flag = true;
  }
  if (butt1.isStep(1)) { // Клик + Удержание
    if(flag) flag = false;
  }
  if (butt1.isRelease()){ // Отпускание кнопки
    flag = false;
  }
}


Не знаю получилось ли у меня навести пример проблемы. На всякий случай, напишу пошагово.
Чтобы сделать клик + удержание, нужно: нажать кнопку, отпустить, и зажать кнопку. Вот при отпускании срабатывает isRelease флаг меняется и всё идет через жопу. Как сделать так, чтобы при клике + удержании не срабатывало isRelease?
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 2
@kalapanga
О библиотеках этого товарища лучше на его же форуме и спрашивать:
https://community.alexgyver.ru/
Ответ написан
nava2002
@nava2002
Инженер
void loop() {
butt1.tick();
if (butt1.isStep()) { // Удержание
flag = true;
}
if (butt1.isStep(1)) { // Клик - сначала
if (butt1.isStep()) { // Удержание - потом
flag = true;
if (butt1.isRelease()){ // Отпускание кнопки
flag = false;
}
}
if(flag) flag = false;
}
}
Ну как то так, вложить Ифы надо прпобовать что она будет делать но идея такая.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы