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

на главную - закладки

Жанры

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

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

Шрифт:

//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

}

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

// Initialize_RTI_PA: инициализация 68HC12 аккумулятора импульсов PA

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

void initialize_PA(void) {

 TIOS = 0x00; // конфигурировать канал 7 для работы в качестве счетчика

 TCTL1 = 0x00; // импульсов оптического кодера

 OC7M = 0x00; // Включить бит разрешения таймера

 TSCR = 0x80; // Установить разрешение для аккумулятора по фронту

//импульса,

 PACTL = 0x50; // Режим счета событий

}

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

//initialize_PWM: генерировать сигнал ШИМ 976 Гц с */

// коэффициентом заполнения 67.2% */

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

void initialize_PWM(void) {

 PWTST =0x00; /*установить ШИМ в режим нормальной работы */

 PWCTL =0x00; /*установить выравнивание по левой границ */

 PWCLK = 0x28; /*без конкатенации, разделить clk на 32 */

 PWPOL = 0x01; /*состояние : высокое затем переход к низкому */

 DDRP = 0xFF; /*установить порт PORTP как выходной */

 PWEN = 0x01; /*разрешение на ШИМ для канала 0 */

 PWPER0= 0xFF; /* установить период равным 256 */

 PWDTY0= PWM duty_cycle; /* установить коэффициент заполнения равным 172 */

}

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

7.4.6. Испытания

Установка для испытания системы стабилизации скорости вращения была показана на рис. 7.18. Это — очень сложная система, содержащая целый ряд компонентов и микроконтроллерную систему 68HC12. Чтобы гарантировать успешную работу системы, настоятельно рекомендуется применять обсужденный в главе 2 метод измерений. Собрав и запустив всю систему, можно включить двигатель на умеренную нагрузку, и убедиться, что система стабилизирует скорость вращения на уровне в 1600 об/мин.

Поделиться:
Популярные книги

70 Рублей

Кожевников Павел
1. 70 Рублей
Фантастика:
фэнтези
боевая фантастика
попаданцы
постапокалипсис
6.00
рейтинг книги
70 Рублей

Жатва душ. Остров мертвых

Сугралинов Данияр
Фантастика:
боевая фантастика
рпг
5.20
рейтинг книги
Жатва душ. Остров мертвых

Сердце Дракона. Том 9

Клеванский Кирилл Сергеевич
9. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.69
рейтинг книги
Сердце Дракона. Том 9

Как я строил магическую империю 6

Зубов Константин
6. Как я строил магическую империю
Фантастика:
попаданцы
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 6

Леди для короля. Оборотная сторона короны

Воронцова Александра
3. Королевская охота
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Леди для короля. Оборотная сторона короны

Кодекс Крови. Книга VI

Борзых М.
6. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VI

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

АллатРа

Новых Анастасия
Научно-образовательная:
психология
история
философия
обществознание
физика
6.25
рейтинг книги
АллатРа

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

Дорога к счастью

Меллер Юлия Викторовна
Любовные романы:
любовно-фантастические романы
6.11
рейтинг книги
Дорога к счастью

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Камень Книга седьмая

Минин Станислав
7. Камень
Фантастика:
фэнтези
боевая фантастика
6.22
рейтинг книги
Камень Книга седьмая

Николай I Освободитель. Книга 2

Савинков Андрей Николаевич
2. Николай I
Фантастика:
героическая фантастика
альтернативная история
5.00
рейтинг книги
Николай I Освободитель. Книга 2

Секретарша генерального

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
короткие любовные романы
8.46
рейтинг книги
Секретарша генерального