как менять (инвертировать) переменную var?
- Войдите на сайт для отправки комментариев
Чт, 04/02/2016 - 15:40
подскажите, как правильно записать инверсию var=1 и var=2 на примере: digitalWrite(13,!digitalRead(13));?
var=1(!var=2); что то типа этого, не знаю, как правильно
Как менять-то? С 1 на 2 и наоборот? Ну, также точно, как и rav
rav = 3 - rav;
Или что-то другое надо?
Бог знает что Вы подразумеваете под инверсией, если предположить по примеру, что речь о лигическом отрицании, то читать здесь:
http://arduino.ru/Reference/Boolean
а еще есть и другие варианты: var1 = var2 ^ 0xFF; var1 = ~var2; var1 = !var2;
Вот часть кода, где при нажатии на кнопку я должен выйти в меню, на повторное нажатие выйти в основную функцию
Можно так:
var=(var==1)?2:1;
или так
var ^= 3;
Спасибо большое, но не помогло, скорее всего сам что-то закосячил
переделал так:
Но все равно, кнопка не нажата - выполняется var2, var1 выполняется только при удерживании кнопки, почему то не фиксируется
А в чем глубинный смысл присваивать переменной var значения 1 и 2? Если чисто сила привычки - то таки скажу что с точки зрения машины логичнее использовать булевы выражения - т.е. 0 и 1. А использование 2,3 и далее - если действительно нужен многовариантный выбор.
ну делай между чтениями кнопки для устранения дребезга.
спасибо
подскажите, как правильно записать инверсию var=1 и var=2 на примере: digitalWrite(13,!digitalRead(13));?
var=1(!var=2); что то типа этого, не знаю, как правильно
var = !var ;
если кнопка не на прерывании, в момент нажатия может гулять/ждать(delay) где-то в другом месте по ходу программы, т.к. при длительном нажатии срабатывает
В цикле после ифов delay() на 300-500мс. Я так делал для устранения дребезгов. Хотя иногда приходится секунду держать кнопку ;) но мне техзадание позволяет ;)
Подскажите, побитовые операнды применимы к типам любой длины или только 8-bit?
Т.е. будет ли корректным например:
А не дольше ли ждать ответа, чем попробовать? Или без форума ни-ни?