Многократный digitalWrite()
- Войдите на сайт для отправки комментариев
Втр, 24/12/2019 - 06:04
Есть ли минусы, если я каждый раз внутри loop() буду выполнять digitalWrite() с одним и тем же уровнем или же лучше озаботиться и завести логическую переменную для предотвращения повторных digitalWrite()?
Какой вариант предпочтительнее, 1 или 2?
// Вариант 1 ==================
void loop()
{
digitalWrite(9, HIGH);
}
// Вариант 2 ==================
bool isDone = false;
void loop()
{
if (!isDone) {
isDone = true;
digitalWrite(9, HIGH);
}
}
Это один из древнейших местных холиваров.
В подавляющем большинстве случаев, без разницы. ИМХО.
сам не проверял но утверждается, что иголок нет
Если скорость выполнения куска кода по записи уровня куда-либо - примерно равна скорости выполнения проверки "надо ли писать уровень" - то без разницы. Но с точки зрения оптимизации (digitalWrite относительно медленный), а также учитывая тот нюанс, что не всегда надо именно digitalWrite (например, когда используются относительно медленные расширители портов на разных протоколах) - лично я предпочитаю иметь наличие флага.