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

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

Жанры

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

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

Шрифт:

Ниже приведен исходный текст программы, позволяющей изменять коэффициент заполнения ШИМ, чтобы стабилизировать скорость на уровне 1600 об/мин.

Эта функция используется начальной установки скорости вращения двигателя.

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

/*init_PWM: инициализация модуля ШИМ контроллера 68HC12 */

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

void init_PWM {

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

 PWCTL = 0x00; /*установить режим фронтовой ШИМ */

 PWCLK = 0x28; /*без объединения каналов, ECLK/128*/

 PWPOL = 0x01; /*активный уровень 1 */

 DDRP = 0xFF; /*Порт P конфигурировать как выходной */

 PWEN = 0x01; /*установить выход ШИМ */

 PWPER0 = 255; /*установить для ШИМ период, соответствующий 976 Гц */

 PWDTY0 = 171; /*установить начальный коэффициент заполнения */

/* на отсутствие движения */

}

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

Если в процессе выполнения программы обработки прерывания RTI скорость вращения превышает 1600 об/мин, коэффициент заполнения ШИМ уменьшается на 1. С другой стороны, если скорость вращения меньше, чем 1600 об/мин, коэффициент заполнения ШИМ увеличивается на 1. Каждое приращение или снижения коэффициента заполнения ШИМ приводит к изменению скорости на 8.5 об/мин. Попробуйте вычислить это изменение в качестве домашней работы (задание 19).

Код, позволяющий сравнить опорную скорость с действительной и скорректировать ее обеспечивается в программе обработки RTI прерывания (RTLISR). В этой распечатке кода, функции поддержки ЖКД были помещены в файл для включения LCD.H с их функциями-прототипами.

7.4.4. Структура программы и блок-схема алгоритма 

На рис. 7.20 показаны блок-схема алгоритма и структура программы регулирования частоты вращения маломощного двигателя постоянного тока. В следующем параграфе приведен полный текст программы для этого проекта. Попробуйте разработать блок-схемы алгоритмов для каждой функции проекта в качестве домашней работы (задание 20).

а) Управление скоростью двигателя. Блок-схема алгоритма

б) Управление скоростью двигателя. Структура программы

Рис. 7.20. К программе управления скоростью двигателя

7.4.5. Программный код

В этом разделе мы использовали методику проектирования сверху-вниз, чтобы разработать, выполнить, и документировать систему стабилизации частоты вращения двигателя. Приводится полный код программы. Если бы мы привели этот код полностью в начале раздела, его сложность могла бы вас испугать. Использование же восходящей методики проектирования позволяет проще и удобнее разбираться с работой каждой функции кода и связью их между собой.

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

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

//авторы: Стив Барретт и Даниэль Пак

//дата создания: 10 марта 2003

//последняя редакция: 2 марта 2004

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

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

#include <912b32.h>

#include <LCD.h> //Функции поддержки ЖКИ

#pragma interrupt_handler RTI_isr//Объявляет подпрограмму обработки

// прерывания по запросу (RTI)

//используемые подпрограммы

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

void RTI_isr(void); //программа обработки прерывания по RTI

void initialize_RTI(void); // Инициализация модуля RTI

void initialize_PA(void); // Инициализация модуля счетчика событий PA

void initialize_PWM(void); // Инициализация модуля ШИМ

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

unsigned int old_count; // последнее содержимое PA

int RTI_int_count = 0; // Используется для подсчета числа

// прерывания RTI

unsigned char PWM_duty_cycle=172; // Начальный коэффициент заполнения ШИМ

unsigned int desired_motor_RPM = 1600; //эталон скорости двигателя

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

void main(void) {

 asm(".area vectors(abs)\n" // команда встроенного ассемблерного кода

".org 0xFFF0\n" // Инициализировать вектор прерывания RTI

".word _RTI_isr\n"

".org 0xFFF8\n"

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

".text");

 initialize_ports; // Инициализация портов

 initialize_LCD; // Инициализация ЖКИ

 initialize_RTI; // Инициализация модуля RTI

 initialize_PA; // Инициализация модуля PA

 initialize_PWM; //Инициализация модуля ШИМ

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

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

 {

;

 }

}

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

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

Весь цикл «Десантник на престоле». Шесть книг

Ланцов Михаил Алексеевич
Десантник на престоле
Фантастика:
альтернативная история
8.38
рейтинг книги
Весь цикл «Десантник на престоле». Шесть книг

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

Мужчина моей судьбы

Ардова Алиса
2. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.03
рейтинг книги
Мужчина моей судьбы

Прорвемся, опера! Книга 3

Киров Никита
3. Опер
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прорвемся, опера! Книга 3

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Измена. Право на сына

Арская Арина
4. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на сына

Игра на чужом поле

Иванов Дмитрий
14. Девяностые
Фантастика:
попаданцы
альтернативная история
5.50
рейтинг книги
Игра на чужом поле

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак

Ворон. Осколки нас

Грин Эмилия
2. Ворон
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ворон. Осколки нас

Сумеречный стрелок

Карелин Сергей Витальевич
1. Сумеречный стрелок
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок

Измена. Испорченная свадьба

Данич Дина
Любовные романы:
современные любовные романы
короткие любовные романы
5.00
рейтинг книги
Измена. Испорченная свадьба

Прометей: Неандерталец

Рави Ивар
4. Прометей
Фантастика:
героическая фантастика
альтернативная история
7.88
рейтинг книги
Прометей: Неандерталец

Генерал-адмирал. Тетралогия

Злотников Роман Валерьевич
Генерал-адмирал
Фантастика:
альтернативная история
8.71
рейтинг книги
Генерал-адмирал. Тетралогия

Четвертый год

Каменистый Артем
3. Пограничная река
Фантастика:
фэнтези
9.22
рейтинг книги
Четвертый год