Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

В рассмотренном примере использовался метод программного опроса триггера завершения измерительной последовательности SCF в регистре состояния ATDSTAT. В этом же регистре располагаются флаги CCF7…CCF0, которые устанавливаются автоматически, когда в процессе выполнения измерительной последовательности произошла запись в одноименный регистр результата. Флаги CCF7…CCF0 могут быть программно опрошены с целью выяснения, завершилось или нет определенное аналого-цифровое преобразование в составе измерительной последовательности. В относительно медленных приложениях такая необходимость отсутствует, поскольку малое быстродействие объекта управления позволяет прикладной программе дождаться окончания всей измерительной последовательности, и лишь затем начать выборку из регистров модуля ATD кодов результатов для проведения дальнейших расчетов.

Если же прикладная программа обслуживает достаточно динамичный объект, то может возникнуть необходимость выборки из регистров результата данных в процессе исполнения измерительной последовательности. Именно тогда и следует воспользоваться флагами завершения преобразования в отдельных каналах CCF7…CCF0. Прикладная программа должна запустить измерительную последовательность на исполнение, а затем контролировать состояние флага первого преобразуемого канала. Когда флаг установится, соответствующий регистр результата может быть считан. При этом во время выборки из памяти первого результата, будет продолжаться аналого-цифровое преобразование следующего сигнала. И так до завершения всей измерительной последовательности.

Программный опрос или поллинг (в англоязычной терминологии) — не единственный способ взаимодействия прикладной программы с модулем аналого-цифрового преобразования. Модуль ATD способен генерировать запросы на прерывание по завершению исполнения измерительной последовательности. Прерывания разрешаются посредством установки бита ASCIE регистра ATDCTL2 в 1. При этом запрос на прерывание генерируется, если устанавливается бит ASCIF в том же регистре. Этот же бит следует сбросить в подпрограмме прерывания, чтобы по завершению следующей измерительной последовательности был сгенерирован новый запрос. Обратите внимание на некоторую особенность битов состояния модуля ATD. Существует два бита завершения исполнения измерительной последовательности: бит ASCIF в регистре управления ATDCTL2 и бит SCF в регистре состояния ATDSTAT. При этом первый бит используется в прерываниях, а второй при программном опросе.

4.23. Особенности модуля ATD в составе МК семейства HCS12

Модуль ATD в составе МК семейства HCS12 по своей архитектуре и исполняемым функциям крайне близок к рассмотренному модулю аналого-цифрового преобразования микроконтроллеров семейства 68HC12. Однако он имеет ряд отличий, которые позволили улучшить его функциональные характеристики:

• Программируемая разрядность аналого-цифрового преобразования: 8 или 10 бит;

• Несколько способов представления результата преобразования: в формате со знаком и без знака, со сдвигом кода 10-разрядного кода в старшие или младшие разряды 16-разрядного регистра результата;

• Возможность запуска измерительной последовательности от внешнего сигнала;

• Программируемое от 1 до 8 число преобразований в одной измерительной последовательности;

• В некоторых моделях МК число аналоговых входов увеличено до 16.

Далее мы кратко остановимся на каждом из этих дополнительных свойств модуля ATD в составе МК HCS12.

4.23.1. Выбор разрядности АЦП

Бит SRES8 в регистре управления ATDCTL4 (рис. 4.93) определяет число разрядов кода аналого-цифрового преобразования, которое выполняет встроенный АЦП модуля ATD. Использование 10-разрядного кода в представлении результата позволяет повысить разрешающую способность АЦП с 19,53 мВ до 4,88 мВ.

Рис. 4.93. Формат регистров модуля ATD в составе HCS12

4.23.2. Представление результата измерения

Результат аналого-цифрового преобразования модуля ATD может быть представлен в формате без знака или со знаком. Бит DSGN регистра ATDCTL5 (рис. 4.93) осуществляет выбор между представлением без знака (при DSGN = 0) или со знаком (при DSGN = 1). Код результата может размещаться со сдвигом влево, т.е. в старшие разряды 16-разрядного регистра результата (бит DJM = 0), или со сдвигом вправо, т.е. в младшие разряды регистра результата (бит DJM = 1).

4.23.3. Запуск измерительной последовательности от внешнего сигнала

Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT