Изучение режимов работы Таймера/Счетчика

(функции захвата, сравнения, широтно-импульсного модулятора)

 

Цель работы. Получение навыков использования Таймера/Счетчика в различных режимах работы. Разработка и отладка управляющих программ Таймера/Счетчика.

 

Краткие теоретические сведения

Во многих микроконтроллерах имеются от 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