Страница 1 из 1

Модуль TWI он же I2C

Добавлено: Вт май 23, 2017 09:19:13
oops13
Доброго времени суток, уважаемые форумчане.
Вопрос есть по очень хорошей книге, В.Я. Хартов Микроконтроллеры AVR. Практикум для начинающих. ISBN978-5-7038-3051-2.
Вопрос по модулю TWI.
Для передачи данных от ведущего к ведомому регистр состояния модуля TWSR устанавливает коды состояния: 0x08 - формирование состояния "СТАРТ"; 0х18 - передача адреса(завершение); 0х28 - передача байта(завершение); 0х?? - формирование состояния "СТОП".
В книге приведен пример (на стр. 184) проверки состояния "СТАРТ".
Внимание вопрос: для чего проводим логическое "И" (andi) над значение нашего регистра.
З.Ы. То, что мы должны поместить содержимое регистра ввода-вывода в регистр общего назначения для выполнения махинаций со значеним РВВ это я знаю. Интересует для чего мы это значение перемножаем на все единицы (котд 0хF8 = 0b11111000, а регистр состояния TWSR как раз использует 5 старших разрядов для формирования кода состояния).
Может я неправильно вопрос задал, ну а может кто нибудь догодается или сталкивался уже с такой проблемой - пишите, очень хочу узнать. Спасибо, коллеги, за внимание. Прикладываю к посту картинки (страницы из книги).

Re: Модуль TWI он же I2C

Добавлено: Вт май 23, 2017 11:11:07
codenamehawk
просто стирают три младших разряда, чтобы не мешались в следующей операции сравнения.