Разработка устройств на микроконтроллерах AVR

Разработка устройств на микроконтроллерах AVR
Автор: А. Белов
Год: 2013
ISBN: 978-5-94387-825-1
Страниц: 528
Язык: Русский
Формат: PDF
Размер: 36 Мб

Download

Этот популярный самоучитель поможет вам всего за шесть шагов пройти путь от “чайника”, изучающего азы цифровой техники, до вполне готового специалиста, умеющего самостоятельно разрабатывать схемы любых устройств на микроконтроллерах и составлять для них программы.
Познав основы цифровой логики, поймете, как работают более сложные элементы цифровой техники. Затем освоите основы микропроцессорной техники, поймете, как работает микропроцессор и микроконтроллер. Узнаете подробности внутреннего устройства, архитектуру и возможности семейства микроконтроллеров AVR, освоите основы схемотехники и конструирования микроэлектронных устройств. Научитесь ставить задачу на разработку устройства и выбирать стратегию ее решения.
Изучите сразу два языка программирования для микроконтроллеров (язык Ассемблера и язык СИ), научитесь транслировать, отлаживать программы, прошивать их в память микроконтроллера. Теперь вы уже самостоятельно сможете разработать собственное микроконтроллерное устройство.
Книга предназначена для широкого круга читателей.

+

Доступ к 16-разрядным регистрам

Регистры TCNTl, OCR1A/B, и ICR1 — это 16-разрядные регистры, к которым центральный процессор может обращаться лишь при помощи 8-разрядной шины данных. Доступ к каждому из 16-разрядных регистров происходит как последовательное чтение или последовательная запись двух байтов информации.

В состав 16-ти разрядного таймера входит специальный 8-разрядный регистр для временного хранения старшего байта 16-разрядного доступа. Один и тот же временный регистр используется для доступа ко всем 16-разрядным регистрам одного 16-разрядного таймера. Этот регистр временного хранения не доступен программисту и используется в автоматическом режиме.

При чтении или записи старшего байта информация на самом деле читается из временного регистра и записывается во временный регистр. Фактические чтение/запись всех шестнадцати разрядов происходят в момент чтения/записи его младшего байта. Так в процессе записи данных фактическая запись старшего байта происходит только в момент записи младшего байта А до этого момента старший байт хранится во временном регистре.

Чтение данных всегда нужно начинать с младшего байта. Система устроена таким образом, что при выполнении команды чтения младшего байта, одновременно читается и помещается во временный регистр старший байт. Когда же поступает команда чтения старшего байта, он уже читается из временного регистра. Подобный способ доступа к 16-разрядным регистрам используется не всегда. Например, при чтении 16-разрядных регистров OCR1A/B временный регистр не используется.

Исходя из вышесказанного, можно сформулировать следующие правила, которые необходимо соблюдать при написании программы для микроконтроллера. Для того, чтобы произвести запись в 16-разрядный регистр, необходимо сначала записать старший байт, а затем младший. При чтении 16-разрядного регистра сначала нужно читать младший байт, а затем старший.