Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
Алгоритм программы на 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)
}
/****************************************************************/
/****************************************************************/
/*update_task_status: изменить состояние конкретной задачи */
/*в соответствии с допустимым переходом (рис. 8.14) */
/****************************************************************/
void update_task_status(unsigned char task, char task_status) {
//установить состояние задачи на выходе порта T
switch(task_status) {
case 'D': //бездействие (D)
PORTT = 0x01;
break;
case 'R': //готовность (R)
PORTT = 0x02;
break;
case 'A': //активность (A)
PORTT = 0x04;
break;
case'W': //ожидание (W)
PORTT = 0x08;
break;
case 'S': // приостановка(S)
PORTT = 0x10;
break;
case 'X': //восстановление (X)
PORTT = 0x20;
break;
}
PORTA = task & 0x7F; /*выбор задачи, активизируйте декодер */
PORTA = 0xFF /*Высокоомный выход (Hi-Z) декодера */
}
/****************************************************************/
/****************************************************************/
8.11.Заключение по главе 8
В этой главе мы познакомили вас с концепциями операционных систем реального времени. Мы не хотели выбирать конкретные ОСРВ и затем рассматривать их работу. Вместо этого, мы сосредоточились на концепциях, связанных с самими ОСРВ и на ключевых вопросах их применения. Мы рассмотрели терминологию ОСРВ, структуры данных, алгоритмы планирования и затруднения, встречающиеся при разработке этих систем.
8.12. Что еще почитать?
Поделиться:
Популярные книги
Черный дембель. Часть 2
2. Черный дембель
Фантастика:
попаданцы
альтернативная история
4.25
рейтинг книги
Кодекс Крови. Книга ХIV
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Магия чистых душ 3
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Жестокая свадьба
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Усадьба леди Анны
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Измена. Возвращение любви!
3. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Два лика Ирэн
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Опасная любовь командора
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Газлайтер. Том 8
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Мымра!
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Таня Гроттер и магический контрабас
1. Таня Гроттер
Фантастика:
фэнтези
8.52
рейтинг книги
Имперский Курьер
1. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Страж. Тетралогия
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Сердце дракона. Танец с врагом
2. Танец с врагом
Любовные романы:
любовно-фантастические романы
5.25