Монк - Программируем Arduino. Профессиональная работа со скетчами.

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

Программируем Arduino. Профессиональная работа со скетчами.: краткое содержание, описание и аннотация

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

Arduino — стандартный микроконтроллер, получивший широкое признание у инженеров, мастеров и преподавателей благодаря своей простоте, невысокой стоимости и большому разнообразию плат расширения. Платы расширения, подключаемые к основной плате Arduino, позволяют выходить в Интернет, управлять роботами и домашней автоматикой.
Простые проекты на основе Arduino не вызывают сложностей в реализации. Но, вступив на территорию, не охваченную вводными руководствами, и увеличивая сложность проектов, вы быстро столкнетесь с проблемой нехватки знаний — врагом всех программистов.
Эта книга задумана как продолжение бестселлера «Programming Arduino: Getting Started with Sketches». Несмотря на то что эта книга включает краткое повторение основ из книги «Programming Arduino», она познакомит читателя с более продвинутыми аспектами программирования плат Arduino.

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

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

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

Интервал:

Закладка:

Сделать

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

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

Рис. 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Объединение двух байтов в - фото 61

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

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

Рис. 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 Линии тактового сигнала - фото 63

Рис. 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