delay между программами.
- Войдите на сайт для отправки комментариев
Пт, 16/02/2018 - 00:47
Доброй ночи форумчане!
Подскажите пожалуйста, в решении моей проблемы.
В void loop у меня совмещены 2 программы-последовательность, вначале одно действие,потом другое. После первого действия идет delay(5000);
Оно отражается и на втором действии. А там это ожидание ненужно,она должна выполняться без каких либо задержек. Подскажите,как можно это поправить?
Классический пример: blink without delay
Извините пожалуйста, где об этом подробнее можно почитать?
Извините пожалуйста, где об этом подробнее можно почитать?
Не напоминает ничего?. Это тоже самое, что вы написали выше.
unsigned long prev = 0; int interval = 1000; // интервал 1000 мс void setup() {} void loop() { if (millis()-prev>interval){ //тут делаем что-то периодически - раз в интервал prev = millis(); //не забываем сбрасывать таймер } }Огромное вам спасибо! Все получилось.
А вы бы лучше писали по существу...
У человека, ниже вашего поста текста меньше в 2 раза, а информативности намного больше чем у вас.
ещё вариант, пригодится
unsigned long timer = 0; bool timerenabled = 0; int interval = 1000; // интервал 1000 мс void setup() {} void loop() { if (если что-то приключилось) { timerenabled = 1; //включаем таймер timer = millis(); //нулим таймер } if (timerenabled){ // тут делаем что-то пока таймер тикает if (millis()-timer>interval){ //тут делаем что-то, когда таймер кончился timerenabled = 0; // не забываем выключить таймер } } else { // тут делаем что-то если таймер выключен } }А вы бы лучше писали по существу...
У человека, ниже вашего поста текста меньше в 2 раза, а информативности намного больше чем у вас.