Перезапись возможно неизменившихся значений в пин.
- Войдите на сайт для отправки комментариев
Втр, 05/11/2019 - 11:39
Здрасвствуйте. Большая просьба помочь с вопросом о предпочтительном варианте записи в пин.
Первый вариант:
If ( условие_включения ) {
if ( pin_state == LOW ) digitalWrite(PIN,HIGH);
pin_state=HIGH;
}
Второй вариант:
pin_state=LOW;
if ( условие_включения ) pin_state=HIGH;
digitalWrite(PIN,pin_state);
Равнозначны ли эти варианты или один из них более предпочтителен. Если верно второе, то почему?
Здравствуйте, большая просьба выкладывать коды так, как это принято на данном форуме.
Первый вариант (он же и последний): Вставка программного кода в тему/комментарий
Вот и для меня загадка. Что вкуснее хлеб с колбасой или колбаса с хлебом.
Пс: ну как иначе отвечать на такие вопросы.
Спасибо за комментарии. И прошу прощения за нарушение правил - исправлюсь. Наивно думал, что краткость кода не требует его специального оформления.
О мотивах вопроса. Первый вариант дольше и требует большего объема памяти, особенно для более чем одного параметра. Второй вызывал смутные сомнения относительно нежелательных последствий для состояния аппаратуры или при эксплуатации - мигания, мерцания, зависания. Если все это неактульно, получается, второй вариант предпочтительней в силу более простого кода.
Компилятору пофигу на размер писанины - он всё равно по-своему оптимизирует.
ИМХО так правильнее
Первый вариант дольше и требует большего объема памяти, особенно для более чем одного параметра. Второй вызывал смутные сомнения относительно нежелательных последствий для состояния аппаратуры или при эксплуатации - мигания, мерцания, зависания. Если все это неактульно, получается, второй вариант предпочтительней в силу более простого кода.
Первый вариант Вам кажется сложнее потому, что там внутренний if нафиг не нужен, можно спокойно выкинуть. Результат-то один - при выполнении условия пин перейдёт (или останется) в HIGH. По сути у Вас в одном случае сначала установить пин, потом запомнить состояние, а в другом наоборот. И вся разница.
Спасибо.
sadman41, спасибо за замечание - учту.
anatoli_nik, там условие включения одного светодиода является условием выключения других. Это индикаторные светодиоды температуры. Поэтому о ветке кода
я и не спросил.
kalapanga, "там внутренний if нафиг не нужен, можно спокойно выкинуть" - вот это и было непонятно. Думал, что это выкидывание может иметь какие-то негативные последствия. Спасибо, что дали прямой ответ.
Компилятору пофигу на размер писанины - он всё равно по-своему оптимизирует.
вот это и напрягает, если на клетке с буйволом увидишь надпись тигр не верь глазам своим...
ИМХО так правильнее
ваш код можно записать в одну строчку, ваще без if :)
ИМХО так правильнее
ваш код можно записать в одну строчку, ваще без if :)