Как сделать задержку в условии.
- Войдите на сайт для отправки комментариев
Чт, 16/05/2013 - 12:52
if ((results.value==3404 or results.value==1356) && millis()-VTime > 1000) { //Что-то делаем. VTime=millis(); }
Необходимо сделать маленькую задержку в 1 секунду если сработало это условие. Тоесть сделать что бы срабатывало это условие не чаще чем раз в секунду.
Выше я написайл код который делает это.
А может есть какие-то более простые решения? Возможно ли как-то избавится от лишней переменной VTime?
delay и подобные ему не предлогать. Спасибо.
Нет. Предложенный вами подход - вполне нормален. Я бы даже сказал "традиционен".
Можно, конечно, заморочится и изобрести какого-то монстра с внешним оборудованием или использовать таймеры. Но вряд ли это решение будет более компактным/эффективным чем ваше.
запихните вашу проверку в обработчик от таймера на 1с, будет раз в секунду проверять ето условие