Многократный 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 (например, когда используются относительно медленные расширители портов на разных протоколах) - лично я предпочитаю иметь наличие флага.