Работа с millis()
- Войдите на сайт для отправки комментариев
Ср, 14/02/2018 - 23:06
//Я профан в программировании, пока только изучаю.
Я так понял, что отсчет в millis() идет с запуска самой ардуины.
Мне нужно, чтобы отсчет шел при выполнении конкретного блока if.
Примерный код -
if (millis() - lastmillis > 10000) { lastmillis = millis(); некий код .... .... }
То есть при перескакивании программы в блок этого if должно пройти 10 сек и далее идет код.
Проблема в том, что пока программа дойдет до этого блока, 10 сек давно пройдут, к тому времени millis() - lastmillis уже больше 10000 и блок if выполняется моментально.
это надо еще вставить туда, откуда должен начаться отчет, только флаг нужен еще, чтобы срабатывал один раз когда нужно
Три раза прочёл, так и не понял вопроса.
А чего тут понимать, человек хочет управлять абсолютным значением millis. Правильно, ТС?
Не?
Проблема в том, что пока программа дойдет до этого блока, 10 сек давно пройдут, к тому времени millis() - lastmillis уже больше 10000 и блок if выполняется моментально.
1. Интересная у вас программа получается.
Где ж это она может аж 10 секунд бродить
и никак не добраться до вашего миллиса?
160 миллионов тактов процессора ! ! !
2. А вам что, надо или не надо чтобы
код выполнился если 10 секунд уже прошли?
Вот как сделал я для того чтобы при нажатии кнопки на нужном выводе появлялась лог. 1 на нужное время (в моем случае 2 с):