Вы находитесь на странице: 1из 29

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

Работа с осциллографом
Таймеры/счетчики ATmega32A
ATmega32A оснащен тремя таймерами/счетчиками
общего назначения: два 8-ми битных и один 16-ти битный.
Таймеры/счетчики 0 и 1 используют общий 10-разрядный
предварительный делитель опорной частоты.
Таймер/счетчик 2 оснащен своим собственным
предварительным делителем.

2
8-разрядный таймер/счетчик 0 (Т/C0)
Т/С0 реализован в виде 8-
разрядного счетчика. В регистр счета
TCNT0 в любой момент времени
можно записать или считать
текущее значение. Если в регистр
счета записано какое-то значение и
выбран источник тактирования
происходит инкремент счетного
регистра с установленной опорной
частотой таймера.

3
Pinout
ATmega32A Expansion Connector
1 Pinout
Выходной сигнал
снимается с PB3
(OC0)
микроконтроллера

PB0 (T0) – внешний


источник
синхронизации

4
(SFIOR) – Регистр специальной функции

5
(SFIOR) – Регистр специальной функции
Bit 0 – PSR10: При записи единицы в данный бит происходит
обнуление общего предделителя Timer/Counter1 и Timer/Counter0.
Данный бит очищается программно.

6
Регистр конфигурации таймер/счетчик (ТCCR0)

7
Bit 7 - FOC0
FOC0 бит позволяет управлять выводом OC0, при условии
конфигурации таймера в режиме Non-PWM.
Если бит FOC0 установлен в единицу, то по окончанию
периода отсчета таймера, осуществляется изменение
состояния вывода OC0, в соответствии с конфигурацией битов
COM01 и COM00.

8
Bits 6 - WGM00-WGM01
Этот бит отвечает за выбор режима работы таймера и
формирования формы выходного сигнала в PWM (ШИМ) режиме.

9
Режимы работы таймера
CTC

10
Режимы работы таймера
Phase PWM

11
Режимы работы таймера
Fast PWM

12
Bits 5,4 – COM0-COM1

13
Bits 5,4 – COM0-COM1

14
Bits 5,4 – COM0-COM1

15
Bits 2,1,0 – CS0n

16
(TCNT0) – Регистр счета

17
(OCR0) – Регистр сравнения

18
(TIMSK) – Регистр маски прерываний

19
(TIMSK) – Регистр маски прерываний
Bit 0 – TOIE0: Если разрешены глобальные прерывания и данный бит
установлен в единицу, то при переполнении счётного регистра будет
сгенерировано соответствующее прерывание. Прототип вектора
прерывания «ISR(TIMER0_OVF_vect)».
Bit 1 – OCIE0: Если разрешены глобальные прерывания и данный бит
установлен в единицу, то при условии TCNT0=OCR0 будет
сгенерировано соответствующее порывание. Прототип вектора
прерывания «ISR(TIMER0_COMP_vect)».

20
(TIFR) – Регистр статуса прерывания

21
(TIFR) – Регистр статуса прерывания
Bit 0 – TOV0: Этот бит устанавливается в единицу при переполнении
счётного регистра. Сброс происходит аппаратно при переходе в
обработчик прерывания, или програмно при повторной записи
единицы в данный бит. В режиме PWM устанавливается при смене
направления счёта.
Bit 1 – OCF0: Этот бит устанавливается в единицу при достижении
таймером значения установленного в регистре сравнения. Сброс
происходит аппаратно при переходе в обработчик прерывания, или
програмно при повторной записи единицы в данный бит.

22
Пример программы

23
Пример осциллограмм

24
Пример осциллограмм

25
Пример осциллограмм

26
Задание на Лабораторную работу 2
1. Реализовать Fast PWM.
2. Реализовать Phase PWM.
3. Реализовать PWM в Normal режиме.
4. Генерация меандра в режиме CTC с изменяемым периодом.

№ команды Частота на 1 задание Частота на 2 задание Частота на 3 задание

1 clkio/1 clkio/8 clkio/64


2 clkio/8 clkio/64 clkio/256
3 clkio/64 clkio/256 clkio/1024
4 clkio/256 clkio/1024 clkio/1
5 clkio/1024 clkio/1 clkio/8

27
Требования к выполнению Лабораторной работы 2

Лабораторная работа выполняется в команде 2-3 человека. Во время


выполнения лабораторной работы, к каждому пункту работы зафиксировать
осциллограмму.
Частота работы таймера выбирается в зависимости от номера варианта вашей
команды.
Скважность выходного PWM должна изменяться в диапазоне от 0 до 255.
Задается при помощи кнопок (+/-).

28
Пример оформления отчета
1. Титульный лист
2. Задание на лабораторную работу
3. Текст программ
4. Осциллограммы
5. Вывод

Подготовиться к защите лабораторной работы.

29

Вам также может понравиться