ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
29 июня
241601 Топик полностью
AD (03.03.2011 22:42, просмотров: 253) ответил 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; } } Для АВР лучше переложить на байтовые операции, суть не изменится. Зачем проверять именно произвольный бит, да еще и заранее неизвестный?