Обманули! Здесь while вообще можно выкинуть и все работает.
delay я для одного светодиода оставил, просто показать, что сначала делал так, а потом заменил на millis.
Так я уже пытался, не работает. Может что-то не так написал?
#define BTN1 4 // кнопка подключена сюда (PIN --- КНОПКА --- GND)
#define BTN2 3 // кнопка подключена сюда (PIN --- КНОПКА --- GND)
#include <Arduino.h>
#include "GyverButton.h"
GButton butt1(BTN1);
GButton butt2(BTN2);
unsigned long currentTime; // переменная времени
boolean ledState = 0; // переменная состояния светодиода
void setup() {
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
butt1.tick(); // обязательная функция отработки. Должна постоянно опрашиваться
butt2.tick();
if (butt1.isClick()) { //при клике по 1 кнопке - вкл. функция void Leds1()
Leds1();
}
if (butt2.isClick()) { //при клике по 2 кнопке - вкл. функция void Leds2()
Leds2();
}
}
void Leds1() {
while(1){
if (butt2.isStep()) {break;}
else {
if (millis() - currentTime > 100) { // проверяем, сколько прошло миллисекунд
currentTime = millis();
ledState = !ledState; // меняем состояние светодиода на противоположное
digitalWrite(6, ledState); // включаем или выключаем светодиод
}
}
}
}
void Leds2() {
while(1){
if (butt1.isStep()) {break;}
else {
if (millis() - currentTime > 100) { // проверяем, сколько прошло миллисекунд
currentTime = millis();
ledState = !ledState; // меняем состояние светодиода на противоположное
digitalWrite(7, ledState); // включаем или выключаем светодиод
}
}
}
}
Т.е. Ваш
код из первого сообщения
был выложен, чтобы запудрить нам мозги, на самом деле у Вас всё по-другому сделано?
Достойно!
Да ладно ребята, расслабьтесь. Кто-то спрашивает, кто-то отвечает, сайт работает, кто-то денюжку за рекламу имеет, все довольны. Раздел для новичков опять же…
Да мы как-то и не напрягались
Да я неправильно поставил вопрос, вернее вопрос то правильный он в названии темы. А “схема” и код, это уже дело наживное и не принципиальное.
Ну и клёво
Мы это заметили
Даааа, запутал всех ТС. Тут либо через миллис, либо через Гайвера… И это принципиальный выбор
Уже начинаю жалеть, что влез в эту тему
О том , чтобы выкинуть while вам говорят с самого начала.
Работает, да не так. В чём сможете убедиться, немного освоив азы языка Си.
Что ж, прогрессируете. Это похвально.
Так все-таки while?
Нет, насчет прогресса - это я поторопился.
Сделал. Заработало. И наконец понял что while это не круто.
Всем спасибо.
П.с.: сорян за срач, вчера пиво пил.
Ну ты же понимаешь - что это всё равно «костыль»?
Понадобится как-то расширить функционал и можешь во все эти циклы так уткнуться…. ((