Задать вопрос
@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 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 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;
}
}
Ну как то так, вложить Ифы надо прпобовать что она будет делать но идея такая.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы