Академический Документы
Профессиональный Документы
Культура Документы
Работа с осциллографом
Таймеры/счетчики ATmega32A
ATmega32A оснащен тремя таймерами/счетчиками
общего назначения: два 8-ми битных и один 16-ти битный.
Таймеры/счетчики 0 и 1 используют общий 10-разрядный
предварительный делитель опорной частоты.
Таймер/счетчик 2 оснащен своим собственным
предварительным делителем.
2
8-разрядный таймер/счетчик 0 (Т/C0)
Т/С0 реализован в виде 8-
разрядного счетчика. В регистр счета
TCNT0 в любой момент времени
можно записать или считать
текущее значение. Если в регистр
счета записано какое-то значение и
выбран источник тактирования
происходит инкремент счетного
регистра с установленной опорной
частотой таймера.
3
Pinout
ATmega32A Expansion Connector
1 Pinout
Выходной сигнал
снимается с PB3
(OC0)
микроконтроллера
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 с изменяемым периодом.
27
Требования к выполнению Лабораторной работы 2
28
Пример оформления отчета
1. Титульный лист
2. Задание на лабораторную работу
3. Текст программ
4. Осциллограммы
5. Вывод
29