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

Сценарий: В нашем примере с роботом у нас было много задач по обеспечению его работы. Теперь мы должны назначить численное значение приоритета для каждой задачи. Мы будем использовать более низкое численное значение для задач с более высоким приоритетом. Например, задаче с самым высоким приоритетом сопоставим значение 1. Мы используем наше понимание сценария работы робота, чтобы назначить приоритеты задач. Так как наш робот дезактивируется, когда приближается к мине, мы присваиваем задаче обнаружения мин приоритет 1. Следующий самый высокий приоритет, равный 2 присвоим операции объезда мины. Задаче ATD-преобразования присвоим приоритет 3, так как она обеспечивает информацию о близости стенок лабиринта. Задаче выбора поворота присвоим следующий приоритет 4, так как она обрабатывает информацию, необходимую, чтобы избежать столкновения со стенками. Наконец, задаче модификации ЖКД назначаем приоритет 5. Это самый низкий приоритет для задач, рассмотренных к настоящему времени; однако, приоритет всех прочих задач еще ниже. Остающиеся задачи имеют еще более низкий приоритет. Они активны на начальных этапах работы нашей операционной системы, а затем входят в состояние бездействия. Мы, следовательно, назначаем им самый низкий приоритет, давая им приоритеты 6 (инициализация ЖКД), 7 (инициализация ATD), и 8 (инициализация ШИМ).

Фрагментация задач. Как мы уже выяснили в этом разделе, желательно разделить программный код задачи на непрерываемые части или фазы, определив удобные точки выхода. Это важно, поскольку в ОСРВ с несколькими задачами с одинаковым приоритетом, задача редко будет способна завершить связанные с ней действия от начала до конца. Чаще всего задача завершит некоторую часть действий и затем будет приостановлена задачей или задачами с более высоким приоритетом. Факт перехода задачи с более высоким приоритетом в состояние готовности еще не означает, что процессорное время немедленно передается ей. Мы должны организовать переход от одной задачи к другой, прервав выполнение кода в заранее определенном удобном для этого месте. Поскольку мы записываем контекст прерываемой задачи, мы должны сохранить его в памяти. Например, мы можем подразделять связанную с задачей функцию на три части. Первый раз, когда задача становится активной, процессор выполняет первую треть кода до удобной отметки прерывания (определенной вами, как программистом). Когда код достигает этой отметки прерывания, контекст сохраняется в TCB, и процессор прерывает управление задачей. Затем выполняется задача с более высоким приоритетом. Когда прерванная задача снова получает для своего выполнения драгоценное процессорное время, она начинается с того места, где была прервана и продолжает обработку второй части своего кода. Этот процесс продолжается, пока задача не завершает все предусмотренные действия.

Проиллюстрируем такую работу примером.

Пример: Предположим, что робот, имеющий пять ИК локаторов (рис. 8.16) выполняет функцию названную process_turn, которая инициализирует систему ATD контроллера 68HC12, начиная последовательность преобразований, необходимую, чтобы записать аналоговые сигналы от пяти датчиков (с номерами от 0 до 4), которые связаны с каналами ATD от 7 до 3, соответственно. Выход датчика Холла, установленного в нижней части робота, чтобы обнаруживать магнитные мины, связан с каналом 2 ATD. Обратите внимание: этот пример придуман, чтобы показать, как следует подразделять код, чтобы обеспечить удобные точки прерывания.

Рис. 8.16. Робот c пятью ИК локаторами и датчиком Холла. ИК-датчик обнаруживает присутствие стенок лабиринта, в то время как датчик Холла обнаруживает присутствие магнитных мин.

Код process_turn, обеспечивающий процесс поворота, приведен ниже.

void process_turn {

 /*Инициализация системы ATD */

 ATDCTL2 = 0x80; /*установка флага ADPU, чтобы подать питание на систему ATD*/

 ATDCTL3 = 0x00; /*игнорировать «замораживание» системы */

 ATDCTL4 = 0x7F; /*Снижение частоты таймера P до 125 кГц */

                 /*выборка, время преобразования = 32 ATD цикла */

 /* 1 выборка за каждые 256 мкс */

 for (i=0; i67; i++) { /* ожидание 100 мкс при 8 МГц ECLK*/

  ;

 }

 /*Инициализация ATD-преобразования */

 ATDCTL5 = 0x50; /*Начать многоканальное ATD-преобразование */

 /* для 8 каналов */

 while((ATDSTAT 0x8000) == 0) { /* проверить окончание преобразования по*/

  /*состоянию флага SCF */

  ;

 }

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

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

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

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

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

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

Дэниэл Дж. Пак , Стивен Ф. Барретт

Программирование, программы, базы данных / Компьютерное «железо» / Программирование / Книги по IT
GPS: Все, что Вы хотели знать, но боялись спросить
GPS: Все, что Вы хотели знать, но боялись спросить

Определение своего положения с помощью GPS навигатора, отдельного прибора, или устройства, встроенного в карманный компьютер или сотовый телефон, уже стало совершенно обычной вещью.Постепенно столь же привычным становится определение положения объекта с помощью систем телематики на основе GPS/GSM/GPRS, когда на мониторе компьютера или экранчике сотового телефона можно увидеть участок карты с отметкой, где находится другой человек или его автомобиль.«GPS» — это первые буквы английских слов «Global Positioning System» — глобальная система местоопределения. GPS состоит из 24 искуственных спутников Земли, сети наземных станций слежения за ними и неограниченного количества пользовательских приемников-вычислителей. «GPS» предзначенна для определения текущих координат пользователя на поверхности Земли или в околоземном пространстве.По радиосигналам спутников GPS-приемники пользователей устойчиво и точно определют текущие координаты местоположения. Погрешности не превышают десятков метров. Этого вполне достаточно для решения задач НАВИГАЦИИ подвижных объектов (самолеты, корабли, космические аппараты, автомобили и т.д.).Как и многие многоцелевые вещи в нашем быту, приемник системы глобального позиционирования (GPS) по мере знакомства с ним обнаруживает массу полезных свойств, даже сверх тех, для которых он был приобретен первоначально. Оказывается существует много любопытных вопросов, на который он с легкостью отвечает, — например, какую скорость вы развиваете при ходьбе, какое расстояние вы преодолеваете при занятии бегом и с какой максимальной и средней скоростью, какую скорость вы развили, спускаясь с горы на лыжах, насколько точен спидометр вашего автомобиля и т. д. Однако основное его назначение — определение координат.

Б. К. Леонтьев , Борис Константинович Леонтьев

Компьютерное 'железо' (аппаратное обеспечение), цифровая обработка сигналов / Компьютерное «железо» / Книги по IT
Wi-Fi: Все, что Вы хотели знать, но боялись спросить
Wi-Fi: Все, что Вы хотели знать, но боялись спросить

Жизнь современного человека — это движение. Мобильность для нас становится одним из самых важных моментов для работы, для общения, для жизни. Многие из нас сейчас уже не представляют жизнь без сотовых телефонов, которые из средства роскоши превратились в предмет, без которого жизнь современного человека стала просто немыслима. Многие уже оценили все преимущества Bluetooth, GPRS. Эти устройства превратили наши телефоны из средств связи в незаменимых помощников в работе. К сожалению, один из самых главных недостатков этих беспроводных технологий — малый радиус действия и низкая скорость передачи данных, что сейчас становится очень важным фактором для всех нас. Поэтому к нам на помощь приходит активно развивающийся во всем мире и в России стандарт Wi-Fi. Особенно радует, что в крупных городах России, особенно в Москве и Санкт-Петербурге, начинается массовое внедрение беспроводных сетей Wi-Fi в публичных местах (так называемых Hot Spot) — отелях, аэропортах, ресторанах, торговых центрах и кафе.Что же такое Wi-Fi? Очередной мыльный пузырь IT-индустрии, который изо всех сил надувают производители и поставщики телекоммуникационного оборудования или новая технология, призванная в очередной раз изменить наш привычный мир, как это случилось когда-то с появлением Интернет и сотовой связи?

А К Щербаков , А. К. Щербаков

Компьютерное 'железо' (аппаратное обеспечение), цифровая обработка сигналов / Интернет / Компьютерное «железо» / Книги по IT