Запись лог. 1 в разряды с обнулением остальных разрядов
n = 0b00010110
или
n = (1 << 4) | (1 << 2) | (1 << 1);
Запись лог.1 в разряды без изменения остальных разрядов
n |= (1 << 4) | (1 << 2) | (1 << 1);
Запись лог. 1 в разряд
(PORTB |= _BV(PIN))
Запись лог. 0 в разряд
(PORTB &= ~_BV(PIN))
Запись лог.0 в разряды без изменения остальных разрядов
n &= ~ (1 << 2) & ~(1 << 3) & ~(1 << 4)
Запись лог.0 в разряды c с записью лог.1 во все остальные
n = ~ (1 << 2) & ~(1 << 3) & ~(1 << 4)
Проверка некоторого разряда переменной на наличие лог. 0
if (~n & (1 << 4)) {Оператор 1;} else {Оператор 2;}
или
if (0==(n & (1 << 4) {Оператор 1;} else {Оператор 2;}
Проверка некоторого разряда переменной на наличие лог. 1
if (0 != (n & (1 << 4))) {Оператор 1;} else {Оператор 2;}
или
if (n & (1 << 4)) {Оператор 1;} else {Оператор 2;}
или
if ((n $ (1 << 4)) == (1 << 4)) {Оператор 1;} else {Оператор 2;}
или при подключенном заголовочном файле <avr/sfr_defs.h>:
if (bit_is_set(n,4))
Ожидание появления лог.1 в некотором разряде
while (~n & (1<<4));
или
while (!(n & (1<<4)));
или при подключенном заголовочном файле <avr/sfr_defs.h>:
loop_until_bit_is_set (n,4);
Цикл ожидания будет выполняться до тех пор пока разряд =0,
Как только разряд станет = 1, произойдет выход из цикла
Комментариев нет:
Отправить комментарий