Монк . - Программируем Arduino

Здесь есть возможность читать онлайн «Монк . - Программируем Arduino» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 2017, ISBN: 2017, Издательство: Издательский дом Питер, Жанр: Базы данных, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программируем Arduino: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программируем Arduino»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Программируем Arduino — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программируем Arduino», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Рис 91Маскирование битов В описаниях двоичных чисел вы обязательно - фото 62

Рис. 9.1.Маскирование битов

В описаниях двоичных чисел вы обязательно столкнетесь со словосочетаниями «самый младший» и «самый старший». В двоичных числах, записанных с соблюдением правил, принятых в математике, самым старшим битом является крайний левый бит, а младшим значащим — крайний правый. Крайний правый бит может иметь ценность только 1 или 0. Вам также встретятся термины самый старший бит (Most Significant Bit, MSB) и самый младший бит (Least Significant Bit, LSB). Самый младший бит иногда называют также нулевым битом (бит 0), первый бит (бит 1) — следующий по старшинству и т.д.

В примере, изображенном на рис. 9.1, байт включает несколько значений, но нас интересуют только три младших бита, которые нужно извлечь как число. Для этого можно выполнить поразрядную операцию И (AND) данных с маской, в которой три младших бита имеют значение 1. Поразрядная операция И (AND) для двух байт в свою очередь выполняет операцию И (AND) для каждой пары соответствующих битов и конструирует общий результат. Операция И (AND) для двух битов вернет 1, только если оба бита имеют значение 1.

Далее показана реализация этого примера на Arduino C с использованием оператора &. Обратите внимание на то, что поразрядная операция И (AND) обозначается единственным символом &, а логическая операция И (AND) — двумя: &&.

byte data = 0b01100101;

byte result = (data & 0b00000111);

Переменная result в данном случае получит десятичное значение 5.

Сдвиг битов

Часто необходимые биты в принимаемых данных могут занимать не самые младшие разряды в байте. Например, если из данных, изображенных на рис. 9.1, потребуется извлечь число, определяемое битами с 5-го по 3-й (рис. 9.2), то вам придется сначала применить маску, чтобы оставить интересующие биты, как в предыдущем примере, а затем сдвинуть биты на три позиции вправо.

Сдвиг вправо в языке C выполняется оператором >>, за которым следует число, определяющее количество разрядов, на которое производится сдвиг. В результате часть битов будет сдвинута за границу байта. Далее приводится реализация примера из предыдущего раздела на языке C:

byte data = 0b01101001;

byte result = (data & 0b00111000) >> 3;

Представьте, что вы получили два 8-битных байта и должны собрать из них одно 16-битное значение типа int. Для этого можно сдвинуть биты старшего байта в один конец значения int, а затем прибавить второй байт. Этот процесс иллюстрирует рис. 9.3.

Рис 92Маскирование и сдвиг битов Рис 93Объединение двух байтов в - фото 63

Рис. 9.2.Маскирование и сдвиг битов

Рис 93Объединение двух байтов в значение типа int Чтобы реализовать это в - фото 64

Рис. 9.3.Объединение двух байтов в значение типа int

Чтобы реализовать это в Arduino C, нужно сначала записать highByte в переменную результата типа int, сдвинуть влево на восемь позиций, а потом прибавить lowByte:

byte highByte = 0x6A;

byte lowByte = 0x0F;

int result = (highByte << 8) + lowByte;

Аппаратная часть SPI

На рис. 9.4 изображена типичная схема подключения к Arduino двух ведомых устройств.

Рис 94Плата Arduino и два ведомых устройства SPI Линии тактового сигнала - фото 65

Рис. 9.4.Плата Arduino и два ведомых устройства SPI

Линии тактового сигнала системы (System Clock, SCLK), выход ведущего/вход ведомого (Master Out Slave In, MOSI) и вход ведущего/выход ведомого (Master In Slave Out, MISO) подключаются к контактам на плате Arduino с теми же именами, которые в модели Uno соответствуют контактам D13, D11 и D12. В табл. 9.2 перечислены наиболее распространенные модели плат и соответствие контактов линиям интерфейса SPI.

Таблица 9.2.Контакты интерфейса SPI на плате Arduino

Модель

SCLK

MOSI

MISO

Uno

13 (ICSP3)

11 (ICSP4)

12 (ICSP1)

Leonardo

ICSP3

ICSP4

ICSP1

Mega2560

52 (ICSP3)

51 (ICSP4)

50 (ICSP1)

Due

ICSP3

ICSP4

ICSP1

Линиями выбора ведомого могут быть любые контакты на плате Arduino. Они используются для выбора определенного ведомого устройства непосредственно перед передачей данных и его отключения по завершении обмена данными.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программируем Arduino»

Представляем Вашему вниманию похожие книги на «Программируем Arduino» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Программируем Arduino»

Обсуждение, отзывы о книге «Программируем Arduino» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x