AD (03.03.2011 22:42, просмотров: 266) ответил mazur на Есть битовое поле. Скажем, 24 бита, то есть, 3 байта. И нужно проверить определенный бит. Когда писал проверочный код, это получилось 24 функции, которые отличались только номерами битов. Попытался возложить эту функцию микроконтроллеру.
А нужна ли тебе эта функция? http://caxapa.ru/241210.html
Насколько я понимаю код по ссылке, он должен делать что-то типа такого
uint32_t inputs, inputs_prev;
void process_inputs (void)
{
uint32_t changed, mask;
uint_fast8_t i;
inputs = get_inputs();
changed = inputs ^ inputs_prev;
inputs_prev = inputs;
mask = 1;
for (i = 0; i < 24; i++) {
if (changed & mask)
handle_inputs_change(i, !!(inputs & mask));
mask <<= 1;
}
}
Для АВР лучше переложить на байтовые операции, суть не изменится.
Зачем проверять именно произвольный бит, да еще и заранее неизвестный?