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

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 1
Зарегистрирован: Вт май 23, 2017 08:19:19

Сообщение oops13 »

Доброго времени суток, уважаемые форумчане.
Вопрос есть по очень хорошей книге, В.Я. Хартов Микроконтроллеры AVR. Практикум для начинающих. ISBN978-5-7038-3051-2.
Вопрос по модулю TWI.
Для передачи данных от ведущего к ведомому регистр состояния модуля TWSR устанавливает коды состояния: 0x08 - формирование состояния "СТАРТ"; 0х18 - передача адреса(завершение); 0х28 - передача байта(завершение); 0х?? - формирование состояния "СТОП".
В книге приведен пример (на стр. 184) проверки состояния "СТАРТ".
Внимание вопрос: для чего проводим логическое "И" (andi) над значение нашего регистра.
З.Ы. То, что мы должны поместить содержимое регистра ввода-вывода в регистр общего назначения для выполнения махинаций со значеним РВВ это я знаю. Интересует для чего мы это значение перемножаем на все единицы (котд 0хF8 = 0b11111000, а регистр состояния TWSR как раз использует 5 старших разрядов для формирования кода состояния).
Может я неправильно вопрос задал, ну а может кто нибудь догодается или сталкивался уже с такой проблемой - пишите, очень хочу узнать. Спасибо, коллеги, за внимание. Прикладываю к посту картинки (страницы из книги).
Вложения
182.JPG
(95.7 КБ) 322 скачивания
183.JPG
(82.57 КБ) 331 скачивание
184.JPG
(69.62 КБ) 320 скачиваний
Реклама
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт фев 09, 2010 17:52:26

Сообщение codenamehawk »

просто стирают три младших разряда, чтобы не мешались в следующей операции сравнения.
Реклама
Ответить

Вернуться в «AVR»