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

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

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

Наиболее ярким примером использования модулей являются языки программирования высокого уровня, такие как С. Ведь никому не приходит в голову писать собственные программы вычисления синусов и косинусов или функции ввода-вывода для этого языка! Используются готовые подпрограммы.

Программа-монитор

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

Рассмотрим программу для микроконтроллера, которая будет выполнять поставленные задачи. Назовем эту программу «монитор», поскольку она «наблюдает» за использованием ресурсов системы. Схема алгоритма программы-монитора приведена на рис. 7.10.

Рис. 7.10.Схема алгоритма программы-монитора

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

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

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

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

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

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

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

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

Чарльз Платт

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

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

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

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

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

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

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