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

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

Жанры

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

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

Шрифт:

Рис. 4.46. Колесо велосипеда с датчиком Холла

Читателю предлагается самостоятельно написать программу расчета скорости и преодоленного расстояния, используя следующие подсказки:

• В первую очередь определите связь между одним оборотом колеса и пройденной дистанцией пути. Предположите, что диаметр колеса равен 66,04 см (26 дюймов).

• Произведите инициализацию подсистемы счетчика внешних событий:

 a. Подсистема счетчика событий использует вход PT7 для подключения внешнего импульсного сигнала. Для конфигурирования

линии PT7 на ввод установите бит 7 регистра TIOS в 0, также в 0 должны быть установлены биты 6 и 7 регистра PCTL1.

 b. Запрограммируйте на выбранный режим регистр управления счетчиком событий PACTL. Определите необходимое состояние каждого бита самостоятельно.

• Считайте под управлением программы текущее состояние счетчика внешних событий, используя регистр PACNT.

• Сформируйте временной интервал, длительность которого должна быть достаточна накопления в счетчике событий нескольких десятков отсчетов. Тогда точность измерения скорости будет приемлемой (несколько единиц %).

• Считайте под управлением программы новое текущее состояние счетчика событий.

• Получите разность кодов и вычислите скорость и пройденное расстояние. Приведенный ниже программный фрагмент поможет Вам выполнить инициализацию подсистемы счетчика событий.

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

/* Функция initialize_PA задает начальные установки подсистемы счетчика событий */

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

void initialize_PA(void) {

 TIOS = 0x00; /*конфигурировать вход PT7 для работы */

 TCTL1 = 0х00; /*в качестве источника сигналов для счетчика*/

 OC7M = 0x00 /*внешних событий – 3 команды*/

 TSCR = 0х80; /*разрешить работу всего модуля таймера*/

 PACTL = 0х70; /*разрешить работу в режиме счетчика внешних*/

/*событий по положительному фронту сигнала*/

}

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

4.15. Модуль меток реального времени

Многие применения требуют организации выполнения одного и того же фрагмента программы через равные интервалы времени. Для удобства разработчиков МК семейства 68HC12/HCS12 оснащены специальным модулем меток реального времени RTI (Real Time Interrupt), который генерирует равноотстоящие во времени запросы на прерывание (рис. 4.47). Тогда фрагмент программы, которые должен исполняться через равные интервалы времени, может быть оформлен как подпрограмма прерывания по запросу RTI. И желаемый алгоритм функционирования устройства будет реализован.

Рис. 4.47. Временная диаграмма, поясняющая принцип действия модуля меток реального времени, и регистры управления модулем

Модуль меток реального времени RTI использует два регистра специальных функций: регистр управления RTICTL (Real Time Interrupt Control Register) и регистр флагов RTIFLG (Real Time Interrupt Flag Register).

Бит RTIE в регистре управления RTICTL (рис. 4.47) разрешает работу подсистемы меток реального времени. При RTIE = 1 подсистема находится в активном состоянии, при RTIE = 0 работа системы запрещена. Биты RTR2:RTR1:RTR0 определяют период следования меток реального времени. Таблица рис. 4.47 устанавливает соответствие между кодовой

комбинацией битов RTR2:RTR1:RTR0 и временным интервалом между двумя соседними метками модуля RTI. Последний именуют периодом RTI.

Выбор периода генерации меток реального времени

RTR[2:0] Коэффициент деления 2х При частоте внутренней системной шины
4 МГц 8 МГц
000 зарезервирован нет нет
001 13 2,048 мс 1,024 мс
010 14 4,096 мс 2,048 мс
011 15 8,192 мс 4,096 мс
100 16 16,384 мс 8,192 мс
101 17 32,768 мс 16,384 мс
110 18 65,536 мс 32,768 мс
111 19 131,072 мс 65,536 мс

Рис. 4.47. Временная диаграмма, поясняющая принцип действия модуля меток реального времени, и регистры управления модулем

Рис. 4.48. Блок-схема алгоритма часов реального времени

Регистр флагов RTIFLG (рис. 4.47) содержит всего один флаг RTIF. Этот флаг устанавливается, когда модуль закончил отсчет очередного периода RTI.

Счетчик подсистемы меток реального времени тактируется импульсной последовательностью с частотой fBUS. В модуле меток реального времени эта частота делится. Коэффициент деления, устанавливаемый разрядами RTR2:RTR1:RTR0, можно выбрать по таблице рис. 4.47. Проанализировав данные таблицы, можно установить, что для МК с частотой внутренней шины 8 МГц максимальный период меток реального времени составляет примерно 65 мс.

Пример использования модуля меток реального времени

Ниже приведен исходный текст программы realtime.c для реализации часов реального времени на основе отсчетов модуля RTI с интервалами 8,196 мс. В подпрограмме прерывания программный счетчик накапливает 122 отсчета RTI (рис.4.48), которые составляют временной интервал длительностью 1 с. По прошествии каждой секунды инкрементируется программный счетчик sec_ctr, по прошествии каждой минуты — счетчик mins_ctr и т.д. вплоть до счетчика дней.

При желании функции программы можно расширить, введя подсчет дня недели, месяца и года.

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

/* filename: realtime.c */

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

/* последовательности с использованием таймера и двух каналов подсистемы */

/* прерывания.Сигналы формируются на выходах 2 и 3 таймера. */

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

Неудержимый. Книга VIII

Боярский Андрей
8. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
6.00
рейтинг книги
Неудержимый. Книга VIII

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Восход. Солнцев. Книга I

Скабер Артемий
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I

Попаданка

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

Возлюби болезнь свою

Синельников Валерий Владимирович
Научно-образовательная:
психология
7.71
рейтинг книги
Возлюби болезнь свою

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

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

Ротмистр Гордеев 2

Дашко Дмитрий
2. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев 2

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

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

Адвокат Империи 3

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

Жребий некроманта 3

Решетов Евгений Валерьевич
3. Жребий некроманта
Фантастика:
боевая фантастика
5.56
рейтинг книги
Жребий некроманта 3

Город драконов

Звездная Елена
1. Город драконов
Фантастика:
фэнтези
6.80
рейтинг книги
Город драконов

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

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

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец