Читаем Занимательно о микроконтроллерах полностью

Использование временных слотов позволяет реализовывать устройства с различными временами реакции. Однако размер временного слота не позволяет обрабатывать быстро текущие процессы. Часто сигнал на входе микроконтроллера длится в течение нескольких микросекунд. Для того чтобы не пропустить такой сигнал, время реакции системы должно быть в пределах нескольких команд микроконтроллера. Если сделать такой маленький временной слот, то микроконтроллер будет постоянно переключаться с задачи на задачу, и ему некогда будет заниматься реализацией основного алгоритма работы. В то же самое время временной интервал между приходом очередного сигнала на вход микроконтроллера может быть достаточно велик, т. е. время реакции системы даже для короткого сигнала может достигать единиц и даже десятков миллисекунд!

Для решения возникшей проблемы в микроконтроллерах предусмотрен механизм прерываний основной программы. Разработчики микроконтроллера предлагают аппаратный вызов подпрограмм при возникновении какого-либо события. Это может быть изменение потенциала на особых выводах микроконтроллера (входах запроса прерывания), переполнение таймеров, завершения передачи или приема байта через последовательный порт. В некоторых типах микроконтроллеров могут быть дополнительные источники прерываний.

В предыдущих главах мы реализовывали ввод информации в начале рабочего цикла программы-монитора. Тем самым мы обеспечивали ввод информации строго через равные интервалы времени. При этом предполагалось, что сигналы на выводах микроконтроллера меняются медленнее интервала опроса. Использование прерываний позволяет обрабатывать короткие сигналы или пакеты сигналов, приходящие в случайные моменты времени. Основное ограничение при использовании прерываний — это то, что мы должны успеть запомнить полученную информацию в глобальной переменной до поступления очередного запроса на прерывание.

Наиболее ярким примером источника событий, наступающих в произвольный момент времени, является последовательный порт. Обычно через него принимаются или передаются многобайтные команды или пакеты данных. Рассмотрим пример обмена микроконтроллера с универсальным компьютером. Обычно для обмена используется последовательный порт компьютера (СОМ-порт). Схема согласования уровней сигналов последовательного порта микроконтроллера и СОМ-порта компьютера приведена на рис. 7.19.

Рис. 7.19. Схема согласования уровней сигналов последовательного порта микроконтроллера и СОМ-порта компьютера

Прежде чем начать программирование обмена через последовательный порт, необходимо определить формат команд обмена с компьютером.

Пусть обмен будет производиться ANSI-символами (их легче всего сформировать в любой терминальной программе на персональном компьютере). Первый переданный символ будет рассматриваться как команда. При использовании в качестве команды заглавных и строчных букв латинского алфавита будет доступно 56 команд. При желании можно добавить еще 64 команды, обозначаемые буквами русского алфавита. Следующие несколько символов составят поле данных. Обычно здесь используются цифры. Пусть у нас поле данных содержит четыре символа. В качестве завершения команды используем символ возврата каретки (ASCII-код «13»). Этот символ вводится при нажатии на клавишу .

Итак, подпрограмма ввода информации должна принять шесть 8-разрядных символов и только после этого передать управление программе обработки информации. Естественно, что подпрограмма обработки информации, которая входит в один из мониторов, не знает, когда будет завершен прием команды, поэтому введем однобитовую переменную (флаг) завершения приема команды. Подпрограмма ввода информации будет записывать в эту переменную единицу, а подпрограмма обработки команд после выполнения команды будет записывать в эту переменную ноль.

Для того чтобы не пропустить ни одного байта, полученного через последовательный порт, оформим ввод информации как подпрограмму обработки прерывания. Для этого необходимо разрешить прерывания от последовательного порта при помощи подпрограммы инициализации микроконтроллера, приведенной в листинге 7.31.

Если к микроконтроллеру не подключены кнопки или датчики, то процессорное время на временные интервалы можно не разделять, и микроконтроллер будет находиться в режиме ожидания, пока подпрограмма ввода не примет через последовательный порт команду от персонального компьютера. В этом случае основная программа будет выглядеть так, как показано в листинге 7.32.

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

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

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

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника