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

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

Жанры

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

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

Шрифт:

1. Назначим в качестве источника тактирования для счетчика временной базы программируемый делитель, на вход которого подается fBUS=8 МГц;

2. Установим коэффициент деления программируемого делителя частоты на входе счетчика временной базы, равный 4. Тогда частота тактирования счетчика будет равна 2 МГц, что соответствует разрешающей способности счетчика 0,5 мкс. Выбранная таким образом разрешающая способность должна быть достаточна для формирования периода следования и длительности импульса;

3. По условию задачи частота

формируемого сигнала составляет 519 Гц, что соответствует периоду следования Т = 1/519 = 0.0019268 с;

4. Вычислим длительность высокого и низкого уровня сигнала на интервале периода. По условию задачи коэффициент заполнения равен 77%. Длительность искомых временных интервалов составляет:

Длительность_1 = 0.77*(0.0019268) = 0.001484 с

Длительность_0 = 0.23*(0.0019268) = 0.0004432 с

5. Преобразуем полученные временные интервалы в целое число периодов частоты тактирования счетчика временной базы:

Код_1 = 0.001484 с/0.5 мкс = 2968 тактов

Код_0 = 0.0004432 с /0.5 мкс = 886 тактов

На рис. 4.44 приведена упрощенная блок схема алгоритма генерации импульсной последовательности. Ниже представлен исходный текст программы на Си (timer2.c), в котором используется метод программного опроса триггера события в канале выходного сравнения.

Рис. 4.44. Блок схема алгоритма генерации импульсной последовательности с заданными временными параметрами

/*------------------------------------------------------------------------*/

/* filename: timer2.c */

/* МAIN PROGRAМ: Эта программа генерирует импульсную последовательность */

/* с частотой 519 Гц и коэффициентом заполнения 77%. Сигнал формируется на*/

/* выходе 2 подсистемы таймера (IC2) */

/*------------------------------------------------------------------------*/

/*подключаемые файлы*/

#include <912b32.h>

/*используемые функции*/

void timer_init(void);

void half_cycle(unsigned int time);

void main(void) {

 unsigned int high_time = 2968; /*число тактов высокого уровня*/

 unsigned int low_time = 886; /*число тактов низкого уровня*/

 timer_init;

 half_cycle(low_time); /*генерация низкого уровня*/

 while(1) {

half_cycle(high_time); /*генерация высокого уровня*/

half_cycle(low_time); /*генерация низкого уровня*/

 }

}

/*--------------------------------------------------------------------*/

/*
Функция timer_init производит инициализацию модуля таймера. */

/* Канал 2 таймера настраивается на режим выходного сравнения. */

/* Частота тактирования счетчика временной базы устанавливается 2 МГц.*/

/*--------------------------------------------------------------------*/

void timer_init(void) {

 TMSK1 = 0x00; /*запретить прерывания от каналов таймера*/

 TMSK2 = 0x02; /*назначить коэффициент деления 4*/

 TIOS = 0х04; /*установить канал 2 в режим выходного сравнения*/

 TSCR = 0х80; /*разрешить работу таймера*/

 TCTL2 = 0х10; /*назначить режим формирователя уровня */

/*"инвертирование"*/

 TFLG1 = 0x04; /*очистить флаг события канала 2*/

 TC2 = TCNT; /*записать в регистр данных канала 2 текущее*/

/*состояние счетчика временной базы*/

}

/*------------------------------------------------------------------------*/

/* Функция half_cycle генерирует временной интервал заданной длительности */

/* Число тактов для отсчета должно быть определено вне функции */

/*------------------------------------------------------------------------*/

void half_cycle(unsigned int time) {

 ТС2 += time; /*задать код сравнения в регистр данных канала*/

 while ((TFLG1 & 0x04) == 0) /*ожидать события выходного сравнения*/

 {

;

 }

 TFLG1 = 0x04; /*очистить флаг события канала 2*/

}

/*------------------------------------------------------------------------*/

Предложенный к рассмотрению программный фрагмент (timer2.c) отличается своей простотой и легкостью отладки. Это объясняется использованным методом программного опроса триггера события канала. Однако такой способ генерации импульсного сигнала становится непригодным, если по условию задачи управления необходимо формировать сразу несколько импульсных сигналов, и в каждом из них должны быть точно реализованы их временные параметры. Поэтому рассмотрим способ генерации импульсного сигнала с использованием подсистемы выходного сравнения таймера и подсистемы прерывания.

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

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

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

На Ларэде

Кронос Александр
3. Лэрн
Фантастика:
фэнтези
героическая фантастика
стимпанк
5.00
рейтинг книги
На Ларэде

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Кай из рода красных драконов

Бэд Кристиан
1. Красная кость
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кай из рода красных драконов

Хозяйка Проклятой Пустоши. Книга 2

Белецкая Наталья
2. Хозяйка Проклятой Пустоши
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка Проклятой Пустоши. Книга 2

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Чапаев и пустота

Пелевин Виктор Олегович
Проза:
современная проза
8.39
рейтинг книги
Чапаев и пустота

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Лютая

Шёпот Светлана Богдановна
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Лютая

Ведьмак (большой сборник)

Сапковский Анджей
Ведьмак
Фантастика:
фэнтези
9.29
рейтинг книги
Ведьмак (большой сборник)

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4

Ученик

Губарев Алексей
1. Тай Фун
Фантастика:
фэнтези
5.00
рейтинг книги
Ученик

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5