Как сделать задержку в условии.

Dima85
Offline
Зарегистрирован: 07.01.2013
    if ((results.value==3404 or results.value==1356) && millis()-VTime > 1000) { 

      //Что-то делаем.

      VTime=millis();
    } 

 

Необходимо сделать маленькую задержку в 1 секунду если сработало это условие. Тоесть сделать что бы срабатывало это условие не чаще чем раз в секунду.

 

Выше я написайл код который делает это.

А может есть какие-то более простые решения? Возможно ли как-то избавится от лишней переменной VTime? 

delay и подобные ему не предлогать. Спасибо.

 

leshak
Offline
Зарегистрирован: 29.09.2011

Нет. Предложенный вами подход - вполне нормален. Я бы даже сказал "традиционен".

Можно, конечно, заморочится и изобрести какого-то монстра с внешним оборудованием или использовать таймеры. Но вряд ли это решение будет более компактным/эффективным чем ваше.

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

запихните вашу проверку в обработчик от таймера на 1с, будет раз в секунду проверять ето условие