5. Как узнать, установлен(ы) или сброшен(ы) определенный(ые) бит(ы) в переменной?
Автор ARV   
18.12.2009 г.

Проверка состояния бита осуществляется при помощи наложения маски на переменную, при этом в маске задается единственный нужный бит:

if(var & _BV(5)) {
    // здесь операторы, если в var 5-й бит установлен
}

При проверке сразу нескольких бит недостаточно убедиться в ненулевом значении результата маскирования, нужно обязательно быть уверенным, что результат маскирования совпадает со значением маски:

mask = _BV(3) | _BV(6); // маска сразу для 2-х битов
if((var & mask) == mask){
    // если оба бита установлены - обрабатываем ситуацию тут
}

Добавить в любимые (0) | Просмотров: 9638

  Коментарии (2)
 1 Написал(а) Toledo, в 01:35 04.08.2012
могу я так проверить окончание АЦП: 
if(_BV(ADIF)) { // проверяем окончание АЦП 
здесь делать нужный код если ацп завершено 
}  
??
 2 Написал(а) ARV, в 20:12 08.08.2012
написано же, как надо проверять бит: надо взять регистр и наложить на него маску: 
if(ADCSRA & _BV(ADIF)) { 
// нужный код 
}

Только зарегистрированные пользователи могут оставлять коментарии.
Пожалуйста зарегистрируйтесь или войдите в ваш аккаунт.