Написание программ для микропроцессоров
Написание программ для микропроцессоров резко отличается от написания программ для универсального компьютера. При выполнении программы на универсальном компьютере запуск программ, взаимодействие с внутренними, внешними устройствами или человеком берЈт на себя операционная система. Программа, написанная для микроконтроллера, должна решать все эти задачи. Программа, написанная для компьютера, когда-нибудь запускается и завершается. Программа, управляющая микроконтроллером, запускается при включении устройства и не завершает свою работу пока не будет выключено питание.
Программа для микроконтроллера должна решать все перечисленные выше проблемы. Простейшим видом программы, которая может решать поставленные задачи является монитор.
Алгоритм программы-монитора приведЈн на рисунке 2.25. После включения питания эта программа должна настроить микросхему под выполняемую программой задачу, то есть настроить определЈнные ножки микросхемы на ввод или вывод информации, включить и настроить внутренние таймеры микроконтроллера и так далее. Этот блок алгоритма программы-монитора называется инициализацией процессора.
Рисунок 2.25. Алгоритм программы-монитора.
Основная часть программы начинает выполняться после настройки микроконтроллера на выполняемую работу. При этом необходимо понимать, что если в аппаратуре ввод обработка и вывод информации производится различными блоками, то при выполнении программы эти же действия производятся последовательно одним и тем же устройством – микропроцессором. В этом же цикле предусмотрен блок обработки ошибок. Его предназначение сообщать оператору о непредвиденной ситуации, такой как неправильный ввод с клавиатуры или неправильные данные с подключенного к микроконтроллеру устройства.
Рассмотрим пример реализации такого алгоритма работы программы. Для написания программы воспользуемся принципами структурного программирования, рассмотренными ранее. В этом случае для проверки работоспособности программы можно воспользоваться программами-заглушками. Исходный текст такой программы приведЈн на рисунке 2.26.
Рисунок 2.25. Пример реализации программы-монитора на языке СИ.
Как видно из приведЈнного текста программа ещЈ ничего не делает, однако эта программа может быть оттранслирована и запущена на отладчике. В отладчике можно проверить, что при включении устройства мы действительно попадаем в подпрограмму инициализации, а затем последовательно вызываются подпрограммы сбора и обработки информации, а также подпрограмма обработки ошибок.
При использовании нескольких подпрограмм встаЈт проблема обмена информацией между этими подпрограммами. Как уже рассматривалось ранее, информация в подпрограмму может быть передана через параметры подпрограммы или через глобальные переменные. При создании программы-монитора может потребоваться передавать одну и ту же информацию нескольким подпрограммам, поэтому в мониторах информация обычно передаЈтся через глобальные переменные.
Объявим глобальную переменную SkanCode, в которой будем хранить значения электрических сигналов на выводах микроконтроллера, подключенных к контактам клавиатуры.
Достаточно часто программа, написанная для микроконтроллера, реализует одновременно несколько устройств или несколько режимов работы. В случае если реализуется несколько режимов работы, задача решается несколько проще. Так как в каждый отдельный момент времени требуется только один режим работы, то для реализации каждого режима работы можно использовать отдельный программный монитор.
[Назад] [Содержание] [Вперёд]