Чтение онлайн

ЖАНРЫ

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

Пак Дэниэл Дж.

Шрифт:

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. Что еще почитать? 

1. Barrett S. F, D. J. Pack, С Straley, L. Sircin, and G. Janack. «Real-Time Operating Systems: A Visual Simulator.» Paper presented at the annual meeting of the American Society for Engineering Educations, June 2004.

2. Ganssle, J. «Writing a Real-Time Operating System-Part I: A Multitasking Event Scheduler for the HD64180.» Circuit Cellar Ink (January/February 1989): 41–51.

3. Ganssle, J. «Writing a Real-Time Operating System-Part II: Memory Management and Applications for the HD64180.» Circuit Cellar Ink (March/April 1989): 30–33.

4. Ganssle, J. «An OS in a CAN.» Embedded Systems Programming (January 1994): 1–6. ImageCraft Creations, Inc. «ICC12, ImageCraft С Compiler and Development Environment for Motorola HC12.» 2001.

5. Korsch, J. F., and L. J. Garrett. Data Structures, Algorithms, and Program Style Using С. Boston: PWS-Kent Publishing Company, 1988.

6. Labrosse, J. J. Micro C/OS-II The Real-Time Kernel, 2nd ed. Lawrence, KS: CMP Books, 2002.

7. Lafore, R. The Waite Group's Microsoft С Programming for the PC, 2nd ed. Carmel, IN, Howard W. Sams and Company, 1990.

8. Laplante, P. Real-Time Systems Design and Analysis: An Engineer's Handbook. New York: IEEE Computer Society Press, 1993.

9. Miller, G. H. Microcomputer Engineering, 2nd ed. Englewood Cliffs, NJ: Pearson Education, 1998.

10. Moore, R. How to Use a Real-time Multitasking Kernels in Embedded Systems, Costa Mesa, CA: Micro Digital Associates, 2001.

11. Motorola Inc. «68HC12 M68EVB912B32 Evaluation Board User's Manual.» Motorola Document 68EVB912B32 UM/D, 1997.

12. Motorola Inc. «HC12 M68HC12B Family Advance Information.» Motorola Document M68HC12B/D, 2000.

13. Pack, D. J., and S. F. Barrett. 68HC12 Microcontroller: Theory and Applications. Upper Saddle River, NJ: Prentice Hall, 2002.

8.13. Вопросы и задания

Основные

1. Что такое — ОСРВ?

Поделиться с друзьями: