Для начинающих -Как не надо использовать millis
- Войдите на сайт для отправки комментариев
Просматривая форум, наткнулся на великолепный образцик попытки построения цикла без delay(). Вместо delay афтар использует замечательную функцию собственного(?) сочинения
void doPause(unsigned int pause_) { unsigned long pause = millis(); if (millis () < pause) pause = millis(); while (millis () - pause < pause_) {} pause = millis(); }
Так вот, всем, кто еще не понял - функция абсолютно бесполезна, так как полностью аналогична по смыслу системной функции delay - точно так же тормозит процессор на заданное время, не давая ему выполнять полезные задачи, только в отличии от делай еще и занимает место в памяти.
Смысл использования конструкций с millis - не в том, чтобы просто заменить delay другой функцией, а в том, чтобы не тормозить программу на время паузы, а позволять ей в это время выполнять другие задачи. Используя delay (или вышеприведенный код) - вы никогда не сможете добится, чтобы программа быстро и своевременно реагировала на внешние сигналы, например на нажатие кнопки. (кстати, автор данной функции жалуется, что "все хорошо, но вот что-то кнопки тормозят" :)
нужно переименовать в "как не нужно использовать циклы" - многие используют циклы для ожидания событий.
Предлагаю еще ряд злободневных тем:
- Как не надо использовать Serial.
- Как не надо использовать pinMode.
- Как не надо использовать map.
Предлагаю еще ряд злободневных тем:
- Как не надо использовать Serial.
- Как не надо использовать pinMode.
- Как не надо использовать map.
Я вот прямо сейчас на вас всех обижусь и буду снова свои хотелки на 155 логике собирать, как 40 лет назад...
Я вот прямо сейчас на вас всех обижусь и буду снова свои хотелки на 155 логике собирать, как 40 лет назад...
ты сцуко ужасен во гневе
КА155ЛА3 ыыыы.... Аж слюнки потекли.