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

 asm("cli"); // Разрешить все маскируемые прерывания

 while(1) // Непрерывный цикл в ожидании прерывания

 {

  ;

 }

}

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

//initialize_ports: обеспечивает начальную конфигурацию портов

//ввода - вывода

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

void initialize_ports(void) {

 DDRP = 0xFF; // Установить PORTP как выходной для ШИМ

 DDRT = 0x00; //Установить PORTT как входной, а вывод PORTT[7]

              // как вход аккумулятора PA

 DDRB = 0xFF; //PORTB на вывод - двунаправленная

              //магистраль данных для ЖКИ

 DDRDLC = 0xFF; //порт PORT DLC на вывод - линии управления ЖКИ

}

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

//RTI_isr: Программа обработки прерывания по меткам реального времени

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

void RTI_isr(void) {

 unsigned int new_count;

 unsigned int pulse_count;

 unsigned int current_RPM;

 float max_count = 65535.0;

 new_count = PACNT; // Получить текущее число импульсов в аккумуляторе

 if (new_count > old_count) // Определить текущее число импульсов

  pulse_count = new_count - old_count;

 else pulse_count = (unsigned int)(max_count-(float)(old_count+new_count));

 // Преобразовать число импульсов кодера в об/мин

 current_RPM = (unsigned int)(pulse_count/0.032768);

 // Изменить число прерываний RTI в счетчике

 RTI_int_count = RTI_int_count + 1;

 if (RTI_int_count == 10) // Изменить на ЖКИ значение после 10 прерываний RTI

 {

  display_count_LCD(current_RPM); // Изменить показания ЖКИ

  RTI_int_count=0; // Сбросить счетчик прерываний RTI

 }

 // Изменить значение скорости двигателя

 if (current_RPM < desired_motor_RPM) PWM_duty_cycle = PWM_duty_cycle + 1; // Ускорить двигатель

 else PWM_duty_cycle = PWM_duty_cycle - 1; // Замедлить двигатель

 // Изменить скорость двигателя с помощью ШИМ

 PWDTY0 = PWM_duty_cycle; //коэффициент заполнения

 old_count = new_count;

 RTIFLG = 0x80; //сбросить флаг прерывания RTI

}

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

// Initialize_RTI: конфигурирует регистры связанные с RTI

//- Регистр управления RTI (RTICTL):

// - разрешение RTI, флаг RTIE

// - установка периода RTI на 32.768 мс

// - сброс RTI, бит RTIF регистре Флагов RTI (RTIFLG)

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

void initialize_RTI(void) {

 RTICTL = 0x86; // Установить период RTI 32.768 мс

 RTIFLG = 0x80; // сброс RTI

}

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

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

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

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных