Разберем на практическом примере почему использование оператора delay() в своих программах ну.... такое себе удовольствие.... Возьмем любую Arduino-подобную платформу, кнопку и светодиод с токоограничивающим резистором. Попробуем решить простую параллельную задачу: Для мигания встроенным светодиодом возьмем код из примера, с которого обычно начинается обучение Arduino и добавим строчку которая будет зажигать светодиод L1 при нажатии на кнопку. Операторы в цикле loop () выполняются последовательно, а поскольку оператор delay() останавливает выполнение программы на заданное в параметре функции количество миллисекунд строка 23 в которой происходит копирование состояния кнопки фактически будет опрашиваться один раз в две секунды. (нажав/отпустив кнопку придется ждать до 2-х секунд прежде чем программа сможет зажечь/погасить светодиод). Даже при сборке простейших часов такой подход будет не приемлем - пока на дисплее мигают точки поуправлять таким с помощью кнопок (например чтобы установить
Почему delay тормозит Arduino и что с этим делать
29 мая 202129 мая 2021
5557
2 мин