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

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

Жанры

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

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

Шрифт:

 delay_100us; delay_100us;

}

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

/*putcommands: функция посылает команду управления ЖКИ */

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

void putcommands(unsigned char d) {

 PORTDLC = PORTDLC&0xF7; /*установить RS в 0 для передачи команды */

 PORTDLC = PORTDLC|0x04; /*установить E
в 1 */

 PORTDLC = 0x00; /* установить E и RS в 0 */

 delay_100us;

 delay_100us;

}

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

/* delay_5ms: программная задержка 5 мс */

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

void delay_5ms(void) {

 int i;

 for (i=0; i<50; i++) {

delay_100us;

 }

}

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

/* delay_100us:программная задержка в 100 мс */

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

void delay_100us(void) {

 int i;

 for(i=0; i<800; i++) {

asm("nop");/*выполнение команды nор ассемблера занимает 1 период*/

 }

}

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

/* display_count_LCD: преобразует целое число в ASCII символ */

/* для вывода на ЖКИ */

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

void display_count_LCD(unsigned int count) {

 unsigned int thousands_int;

 unsigned int hundreds_int;

 unsigned int tens_int;

 unsigned int ones_int;

 char thousands;

 char hundreds;

 char tens;

 char ones;

 /*выбирает и преобразует наибольшую значащую цифру в десятичное */

 /* значение + 48, образуя ASCII код */

 thousands_int = count/1000;

 thousands = (char)(thousands_int + 48);

 /*выбирает и преобразует следующую
наибольшую значащую цифру */

 /* в десятичное значение + 48, образуя ASCII код */

 hundreds_int = (count - thousands_int*1000)/100;

 hundreds = (char)(hundreds_int + 48);

 /*выбирает и преобразует следующую наибольшую значащую цифру */

 /* в десятичное значение + 48, образуя ASCII код */

 tens_int = (count - thousands_int*10 0 0 - hundreds_int*100)/10;

 tens = (char)(hundreds_int + 48);

 /*выбирает и преобразует следующую наибольшую значащую цифру */

 /* в десятичное значение + 48, образуя ASCII код */

 ones_int = (count-thousands_int*1000-hundreds_int*100-tens_int*10);

 ones = (char)(ones_int + 48);

 /*выводит результат на ЖКИ*/

 putcommands(0x80); /*курсор ЖКИ переводится на строку 1, позицию 1*/

 putchars(thousands);

 putchars(hundreds);

 putchars(tens);

 putchars(ones);

}

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

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

7.4.3. Анализ 

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

Стабилизируем скорость двигателя на уровне 1600 об/мин. Чтобы сделать это, мы должны определить требуемый коэффициент заполнения ШИМ для 1600 об/мин. Из полученного нами графика (рис. 7.17) мы видим, что для обеспечения скорости вращения приблизительно в 1600 об/мин, необходимо подать на двигатель напряжение в 8 В. При питании двигателя от источника в 12 В соответствующий коэффициент заполнения ШИМ составит 66.7 % (8 В/ 12 В).

Чтобы достичь коэффициента заполнения ШИМ в 66.7%, установим значение периода ШИМ на 256 единиц, а коэффициент заполнения ШИМ на 172 единицы.

Как мы уже указывали при предыдущем обсуждении системы ШИМ, эти значения устанавливаются в регистрах PWPER0 и PWDTY0, соответственно.

Мы используем сигнал управления ШИМ с частотой 976 Гц. Для этого частоту таймера ШИМ, равную 8 МГц, необходимо поделить на 32. При этом мы получим частоту в 250 кГц (период 4 мкс) и используем ее в качестве синхронизирующей для системы ШИМ. Поскольку мы используем период в 256 импульсов, частота управления ШИМ будет равна 976 Гц (период = 4 мкс/импульсx256 импульсов).

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

Возвышение Меркурия. Книга 17

Кронос Александр
17. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 17

Повелитель механического легиона. Том III

Лисицин Евгений
3. Повелитель механического легиона
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Повелитель механического легиона. Том III

Матабар IV

Клеванский Кирилл Сергеевич
4. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар IV

Измена. Вторая жена мужа

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

Мастер 9

Чащин Валерий
9. Мастер
Фантастика:
боевая фантастика
попаданцы
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Мастер 9

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

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

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила

Солдат Империи

Земляной Андрей Борисович
1. Страж
Фантастика:
попаданцы
альтернативная история
6.67
рейтинг книги
Солдат Империи

Идеальный мир для Лекаря 20

Сапфир Олег
20. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 20

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

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

Контракт на материнство

Вильде Арина
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Контракт на материнство

Элита элит

Злотников Роман Валерьевич
1. Элита элит
Фантастика:
боевая фантастика
8.93
рейтинг книги
Элита элит

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

На границе империй. Том 8. Часть 2

INDIGO
13. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8. Часть 2