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

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

Жанры

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

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

Шрифт:

 ТС2 = TC2 + c;

 /*задать код сравнения в регистр данных канала*/

 c = c + 100;

 /*вычислить новое значение c*/

}

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

Проанализируйте функцию toggle_isr. Генерацию какого импульсного сигнала она обеспечивает?

В следующем примере timer4.c показаны потенциальные возможности подсистемы выходного сравнения, обслуживаемой по прерываниям. В примере генерируются сразу две

импульсные последовательности с разными частотами и коэффициентами заполнения. Нетрудно видеть, что число одновременного генерируемых импульсных сигналов может быть увеличено.

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

/*filename: timer4.c */

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

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

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

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

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

#include <912b32.h>

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

void initialize(void); /*функция инициализации*/

void toggle1_isr(void); /*подпрограмма прерывания toggle1_isr*/

void toggle2_isr(void); /*подпрограмма прерывания toggle2_isr*/

//объявление функции обслуживания прерывания

#pragma interrupt_handler toggle1_isr

#pragma interrupt_handler toggle2_isr

//инициализация векторов прерывания

#pragma abs_address: 0xF7E8

void (*Timer_Channel_3_interrupt_vector[]) = {toggle2_isr};

void (*Timer_Channel_2_interrupt_vector[]) = {toggle1_isr};

#pragma end_abs address

void main(void) {

 initialize; /*инициализация подсистемы таймера*/

 TMSK1 = 0х0C; /*разрешение прерывания по событию в каналах 2 и 3*/

 TFLG1 = 0xFF; /*сброс всех флагов событий от каналов*/

 CLI; /*разрешить прерывания*/

 while(l) {

/*ожидание прерывания*/

 ;

 }

}

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

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

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

void initialize(void) {

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

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

/*сравнения*/

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

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

/*инвертирование для обоих каналов*/

}

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

/* Функция toggle1_isr подпрограмма прерывания по событию в канале 2*/

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

void toggle1_isr(void) {

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

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

}

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

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

/* Функция toggle2_isr подпрограмма прерывания по событию в канале 3 */

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

void toggle2_isr(void) {

 TFLG1 = 0x08; /*сброс флага события канала 3*/

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

}

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

Проанализируйте функции toggle1_isr и toggle2_isr. Генерацию каких импульсных последовательностей они обеспечивают?

4.14.5. Счетчик событий

Счетчик событий или аккумулятор импульсов (Pulse Accumulator) — это подсистема модуля таймера, которая разработана специально для подсчета импульсов. Основной элемент счетчика событий — 16 разрядный счетчик, который может работать в двух режимах:

• Счетчик внешних событий. В этом режиме счетчик PACNT подсчитывает число событий, которое детектируется его аппаратными средствам на входе PAI. Тип события (только нарастающий или только спадающий фронт сигнала) определяется посредством программных установок.

• Стробируемый таймер. В этом режиме счетчик PACNT тактируется внутренними импульсами с частотой fBUS/64, а сигналы на входе PAI разрешают или запрещают счет.

Режимы работы счетчика

Структурная схема подсистемы счетчика событий представлена на рис. 4.45. Изучив ее, вы увидите, что счетчик событий в качестве входа PAI, на который должны поступать внешние импульсы, использует линию PT7 порта PORT T. Таким образом, обслуживание подсистемы счетчика событий альтернативная функция линии 7 порта PORT T. Однако линия PT7 обладает еще одной альтернативной функцией. Она используется как вход или как выход канала 7 подсистемы захвата/сравнения модуля таймера. Какие программные установки в регистрах управления таймера необходимо выполнить, чтобы конфигурировать линию PT7 как вход PAI счетчика событий?

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

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

Ланцов Михаил Алексеевич
Десантник на престоле
Фантастика:
альтернативная история
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
рейтинг книги
Четвертый год