(функции захвата, сравнения, широтно-импульсного модулятора)
Цель работы. Получение навыков использования Таймера/Счетчика в различных режимах работы. Разработка и отладка управляющих программ Таймера/Счетчика.
Краткие теоретические сведения
Во многих микроконтроллерах имеются от 1 до 3 Таймеров/ Счетчиков (Т/С). Они предназначены для формирования различных временных интервалов и подсчета количества импульсов. Базовым элементом является обычный двоичный счетчик, переполнение, которого формируется сигнал прерывания.
1. Т/С могут работать в следующих режимах:
2. Режим захвата – заключается в запоминание базового содержимого счетчика при поступлении внешнего или внутреннего сигнала.
3. Режим сравнения – заключается в изменение уровня сигнала на выходе МК при совпадении содержимого базового регистра и вспомогательного регистра данных. При совпадении этих значений формируется сигнал запрос прерывания.
4. Режим широтно-импульсной модуляции (ШИМ) – используется для формирования импульсов с программно изменяемой длительностью и паузой.
5. Режим счета реального времени – данный режим используется в Т/С при условии что к внешним выводам МК подключен часовой кварц (32.768кГц), этот подключается к выводам TOSC0,TOSC1. Вывод частоты кварцевого резонатора определяется аппаратными средствами МК которые оптимизированы на данную частоту. В этом режиме работает только Т/С0.
В качестве тактовых импульсов Т/С могут использоваться импульсы с внутреннего генератора, с внешнего генератора и с другого каскада предделителя.
Регистр управления TCCR0 и назначение битов регистра:
D7-зарезервирован.
D6-PWM0 – разрешение работы Т/С.
D5-D4-COM00,COM01 – биты определения состояния входа OC0 МК в режиме сравнения.
При работе в ШИМ режиме назначение этих битов отличается.
D3-СТ0 – очистка счетчика таймера Т/С0 при совпадение.
D2-D0-CS02,CS01,CS00 – биты для выбора тактовой частоты Т/С.
Регистр данных TCNT0.
Представляет собой 8 ми разрядный регистр доступный для записи и чтения. Этот регистр-счетчик работает на сложение или вычитание в ШИМ режиме.
Регистр сравнения выходов таймера счетчика OCR0.
Этот регистр также является 8-ми разрядным, доступным для записи и чтения данных. Режим работы этого регистра зависит от значений битов в регистре управления таймера счетчика. При использование таймера счетчика в режиме сравнения в этот регистр записывается некоторое число, а регистр TCNT0 работает как суммирующий счетчик. При совпадение содержимого регистров таймер счетчик формирует сигнал прерывания.
Асинхронная работа Т/С0. Отличительной особенностью Т/С0 от Т/С2 является то, что он работает в асинхронном режиме, т.е. в режиме счета реального времени. Для этого к входам МК TOSC1, TOSC2 подключается часовой кварц (32.768кГц). Для управления Т/С используется регистр статуса асинхронного режима ASSR0.
Назначение битов регистра:
D7-D4-зарезервированы.
D3-AS0 – асинхронный режим Т/С.
D2-TCN0HB – данный бит установлен в единичное состояние, если Т/С занят для обновления
D1-OCR0HB – установленный бит означает, что регистр OCR0 занят для обновления.
D0-TCR0 – установленный бит означает, что регистр управления занят. Подробно см. раздел 2.6.
Индивидуальные задания к выполнению
Лабораторной работы №5
1. Разработать программу настройки Т/С0 для работы в режиме захвата. В качестве источника тактирования использовать внешний источник. По сигналу «Запрос прерывания» записать число $55 в порт В.
2. Разработать программу настройки Т/С0 для работы в режиме сравнения. В качестве источника тактирования использовать внешний источник. По сигналу «Запрос прерывания» записать число $АА в порт С.
3. Разработать программу настройки Т/С0 для работы в режиме захвата. В качестве источника тактирования использовать внутренний источник. По сигналу «Запрос прерывания» записать число $55 в порт В.
4. Разработать программу настройки Т/С0 для работы в режиме режим сравнения. В качестве источника тактирования использовать внутренний источник. По сигналу «Запрос прерывания» записать число $АА в порт С.
5. Разработать программу настройки Т/С0 для работы в ШИМ режиме и формирование импульсов на выходе ШИМ.
6. Разработать программу настройки Т/С0 и Т/С2 для работы в режиме ШИМ режимах и формирование импульсов на выходах ШИМ.
7. Разработать программный преобразователь количество входных импульсов в единицы объема на Т/С0 в режиме сравнения. В качестве источника импульсов использовать внешний генератор. По сигналу «Запрос прерывания» результат записать в порт С.
8. Разработать программу настройки Т/С0 для работы в режиме режим сравнения. В качестве источника тактирования использовать внешний источник. По сигналу «Запрос прерывания» вызов подпрограммы «Бегущая единица»
9. Разработать программу настройки Т/С0 для работы в режиме режим сравнения и ожидание внешних событий. По сигналу «Запрос прерывания» вызов подпрограммы «Двоичный счетчик».
Контрольные вопросы к лабораторной работе № 5
1. В каких режимах работает Таймер/Счетчик? Перечислите их и приведите примеры использования.
2. В чем отличие Таймера/счетчика0 от Таймера/счетчика1
3. Назначение регистров управления TCCR0 иTCCR2 и их форматы.
4. Регистры управления А и В Таймера/счетчика1 - TCCR1A и TCCR1B
5. Регистр статуса асинхронного режима – ASSR и его назначение.
6. Вектора прерывания Таймера/Счетчика и их назначение. Привести пример организации работы Таймера/Счетчика в режиме прерываний.
7. Перечислите источники тактового сигнала Таймера/Счетчика. Как выбрать источника тактового сигнала таймера/счетчика1
8. Как выбор коэффициент деления предварительного делителя Таймера/счетчика0
9. Как производится запись (чтение) данных в (из)Таймер/счетчик1 - TCNT1 (в регистры TCNT1L и TCNT1H)
10. Как производится чтение данных из Таймера/счетчика1 - TCNT1 (из регистров TCNT1L и TCNT1H)
11. Регистры сравнения A (В) выхода Таймера/счетчика1 - OCR1AH(OCR1ВH) и OCR1AL(OCR1ВL) и их назначение
12. Регистры захвата входа Таймера/счетчика1 - ICR1H и ICR1L и их назначение
13. Привести схему использования Таймера/счетчика1
Лабораторная работа №6