Регистр данных канала 0: TC0H:TC0L | Адрес: $0090–0091 |
Регистр данных канала 1: TC1H:TC1L | Адрес: $0092–0093 |
Регистр данных канала 2: TC2H:TC2L | Адрес: $0094–0095 |
Регистр данных канала 3: TC3H:TC3L | Адрес: $0096–0097 |
Регистр данных канала 4: TC4H:TC4L | Адрес: $0098–0099 |
Регистр данных канала 5: TC5H:TC5L | Адрес: $009A–009B |
Регистр данных канала 6: TC6H:TC6L | Адрес: $009C–009D |
Регистр данных канала 7: TC7H:TC7L | Адрес: $009E–009FФормат регистров данных таймера:TCnH, TCnL |
Рис. 4.42.
1. Опишите два возможных способа для сброса флага события в регистре TFLG1.
Ответ: По первому способу биты флагов событий в каналах захвата/сравнения CnF в регистре TFLG1 сбрасываются посредством записи 1 в тот разряд регистра TFLG1В, который подлежит сбросу. Попытка записи 0 в разряд, который установлен в 1, не даст желаемого результата. п.1. По второму способу чтение или запись в регистр данных канала автоматически сбрасывает бит события этого канала, если в регистре TSCR установлен бит TFFCA.
2. Какой код должен быть записан в регистр режимов каналов захвата/сравнения TIOS, чтобы каналы с четными номерами работали в режиме входного захвата, а каналы с нечетными номерами в режиме выходного сравнения?
Ответ: $AA.
3. Какой код и в какие разряды регистра TCTL1 должен быть записан, чтобы настроить формирователь уровня канала 7 в режим установки 1?
Ответ: Код 11 в разряды OM7:OL7.
4. Какой код и в какие разряды регистра TCTL4 должен быть записан, чтобы настроить детектор события канала 1 в режим мониторинга за любым изменением уровня сигнала на входе канала 1?
Ответ: Код 11 в разряды EDG1B:EDG1A.
Познакомившись с основными подсистемами модуля таймера, мы рассмотрим несколько примеров применения. В первом примере мы будем использовать подсистему входного захвата для измерения частоты и периода следования импульсов некоторого логического сигнала. Во втором примере мы будем формировать на одном из выходов МК импульсную последовательность, используя для этого подсистему выходного сравнения и подсистему прерывания МК.
Для того чтобы воспользоваться аппаратными средствами универсального канала таймера для измерения частоты и периода следования импульсов, необходимо установить этот канал в режим входного захвата, а также выполнить ряд дополнительных установок конфигурации для счетчика временной базы, детектора события канала и подсистемы прерывания. Полное описание регистров специальных функций модуля таймера было приведено выше. В нашем примере мы будем использовать следующие биты и регистры управления:
• Бит разрешения работы модуля таймера TEN (регистр управления модулем таймера TSCR);
• Бит разрешения прерывания по переполнению счетчика временной базы TOI и биты выбора коэффициента деления программируемого делителя частоты на входе счетчика временной базы PR2:PR1:PR0 (регистр масок таймера TMSK2);
• Бит выбора режима работы канала IOSn (регистр режимов каналов захвата/сравнения TIOS). Если бит IOSn установлен в 1, то канал работает в режиме выходного сравнения. Если бит IOSn равен 0, то канал настроен на режим входного захвата;
• Биты выбора режима работы детектора события канала входного захвата EDGnB:EDGnA (регистры управления таймером TCTL3 и TCTL4);
• Бит события в канале CnF (регистр флагов таймера TFLG1);
• Бит разрешения прерывания по событию в канале CnI (регистр масок таймера TMSK1);
• Регистр данных канала TCn, в который автоматически записывается код счетчика временной базы в момент события входного захвата.
Предположим, что период исследуемого сигнала не превышает длительности периода переполнения счетчика временной базы. Тогда, для измерения частоты и периода следования импульсов логического сигнала, необходимо реализовать в микроконтроллере следующую последовательность действий:
1. Разрешить работу модуля таймера;
2. Выбрать частоту тактирования счетчика временной базы, для чего установить желаемый коэффициент деления программируемого делителя частоты на входе счетчика временной базы;
3. Установить один из каналов в режим входного захвата по нарастающему фронту импульса;
4. Сохранить в памяти МК код счетчика временной базы в момент появления первого фронта импульса;
5. Сохранить в памяти МК код счетчика временной базы в момент появления второго фронта импульса;