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

Функция update_task_status требует в качестве параметров идентификационного номера задачи и кода желательного изменения состояния задачи. Специфическая задача используется, чтобы конфигурировать PORTA[3:0] правильным четырехразрядным двоичным кодом, который подается на микросхему 74HC154 декодера 4–16. Когда на демультиплексор подается код через выходной порта PORTA[7], активируется триггер-защелка, соответствующий выбранной задаче. Это позволяет передать модифицированное состояние задачи, представленное на выходах порта T контроллера 68HC12 на светодиоды и, таким образом, показать состояние задачи на дисплее.

Алгоритм программы на UML для реализации этой функции представлен на рис. 8.24.

Рис. 8.24. Алгоритм UML для функции update_task_status


//******************************************************************

//имя файла: realtime.с

//авторы: Steve Barrett and Daniel Pack

//разработан: 1 июля, 2004

//последняя редакция: 1 июля, 2004

//******************************************************************

//включенные файлы ****************************************

#include <912b32.h>


//функции-прототипы****************************************

void initialize_ports(void); //инициализация портов

void initialize_LCD(void); //инициализация ЖКД

void putchars(unsigned char); //функция поддержки ЖКД - ввести символ

void putcommands(unsigned char); // функция поддержки ЖКД - ввести команду

void delay_5ms(void); //задержка на 5 мс

void delay_100us(void); //задержка на 100 мкс

void update_task_status(unsigned char task, char task_status);

//изменить состояние задачи


//глобальные переменные************************************************


//главная программа****************************************************

void main(void) {

 asm(" .area vectors(abs)\n" //inline assembly statement

  " .org 0xFFF8\n" //initialize 68HC12 B32 reset vector

  " .word 0x8000, 0x8000, 0x8000, 0x8000\n"

  " .text");

 initialize_ports(); //инициализировать порты

 initialize_LCD(); // инициализировать ЖКД

 update_task_status(0x00, 'R') ; //изменить состояние задачи

}


//******************************************************************

//initialize_ports: provides initial configuration for I/O ports

//******************************************************************

void initialize_ports(void) {

 DDRA = 0xFF; //установить PORTA как выходной - управляющие линии

              // демультиплексора

 DDRT = 0xFF; // установить PORTT как выходной - состояние задачи

 DDRB = 0xFF; // установить PORTB как выходной - порт данных для ЖКД

 CTDRDLC = 0xFF; // установить PORT DLC как выходной - сигналы

                 //управления для ЖКД

 DDRP = 0x0F; // установить PORTP[3:0] как выходной, PORT[7:4] как

              //входной - для клавиатуры

 PORTA = 0xFF; //установить для PORTA все линии декодера высокоомными (Hi-Z)

}

/****************************************************************/


/****************************************************************/

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

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

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