Сборка лекции, страница 5
Описание файла
Документ из архива "Сборка лекции", который расположен в категории "". Всё это находится в предмете "электроника" из , которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "электроника и микропроцессорная техника" в общих файлах.
Онлайн просмотр документа "Сборка лекции"
Текст 5 страницы из документа "Сборка лекции"
1∙2 (2 LDI)
+ 1∙25 (25 DEC)
+ 1∙24 (24 brne с результатом 0)
+ 2∙1 (1 brne с результатом 1)
+ 1∙10 (10 DEC)
+ 1∙9 (9 brne с результатом 0)
+ 2 (1 brne с результатом 1)
+ 4 (1 ret)
= 2+25+24+2+10+9+2+4=30+9+4=78 тактов
На время программной задержки: tЗАД = = 3.9∙10-6 c = 3.9 мкс
Лекция 7. Таймер-счётчик общего назначения (General Purpose Timer/Counter) 24.10.2006.
ТС предназначен для формирования запроса прерывания по
истечении заданного интервала времени (режим таймера) или
свершении заданного числа событий (режим счётчика).
AVR МК имеют в своём составе от 1 до 3 ТС общего назначения.
Основным элементом ТС является суммирующий базовый счётчик, при переполнении которого формируется запрос прерывания.
ТС общего назначения может выполнять дополнительные функции:
• Захвата
• Сравнения
• Широтно-импульсного модулятора
• Счёта реального времени
Функция захвата заключается в запоминании кода, сформированного в базовом счётчике, в специальном регистре захвата при изменении значения определённого внешнего или внутреннего сигнала. При этом формируется запрос прерывания TC/X CAPT.
Функция сравнения заключается в изменении значения сигнала на определённом выводе МК при совпадении кода, формируемого в базовом счётчике, с кодом в специальном регистре сравнения. При этом формируется запрос прерывания TC/X COMP.
Функция широтно-импульсного модулятора заключается в формировании на определённом выводе МК импульсной последовательности с заданным периодом повторения и длительностью импульсов.
Функция сравнения и ШИМ реализуется с использованием одних и тех же аппаратных средств. Выбор нужной функции определяется программно.
Функция счёта реального времени реализуется при использовании дополнительного внутреннего генератора с внешним кварцевым резонатором с частотой 32768 Гц.
В состав AVR МК могут входить 5 типов ТС:
• Восьмиразрядный ТС без дополнительных функций
• Восьмиразрядный ТС с функцией сравнения/ШИМ
• Восьмиразрядный ТС с функцией сравнения/ШИМ и функцией счёта реального времени
• Шестнадцатиразрядный ТС с функцией захвата и сравнения/ШИМ
• Шестнадцатиразрядный ТС с функцией захвата и двумя каналами сравнения/ШИМ
ТС любого типа содержит базовый счётчик T/CX (Х=0,1,2 – цифра в имени ТС) и восьмиразрядный регистр управления TCNTX.
Помимо этого работоспособность ТС обеспечивают регистры TIFR и TIMSK (регистр запросов прерывания и регистр маскирования прерываний соответственно, находятся в области регистров ввода/вывода, которых всего 64).
Восьмиразрядный ТС без дополнительных функций
ТС типа А обозначается T/C0.
Он формирует запрос прерывания T/C0 OVF при переполнении восьмиразрядного базового счётчика TCNT0.
Структурная схема изображена на рисунке:
Тактовый сигнал ТС МК поступает в пересчётную схему ПС, представляющую собой десяти разрядный счётчик, где выполняется деление частоты тактового сигнала на заданный коэффициент. Сигналы с четырёх выходов пересчётной схемы поступают в схему управления СУ (мультиплексор). Помимо этого в СУ поступают тактовый сигнал и сигнал со счётного входа Т0.
СУ в зависимости от комбинации состояний разрядов регистра управления (см. таблицу) передаёт один из поступающих сигналов на счётный вход базового счётчика. При переполнении счётчика устанавливается в 1 состояние соответствующий разряд регистра запросов прерывания. И при 1 состоянии соответствующего разряда регистра маскирования прерываний в блок управления поступает запрос прерывания Т/C0 OVF.
Коэффициент деления счётной схемы формируется следующим образом:
; Подпрограмма инициализации таймера 0
tim0_init:
ldi temp, $5
out tccr0, temp ; коэффициент предделителя - 1024
ldi temp, (1<<toie0) ; выражение в скобках вычисляется при ассемблировании
out timsk, temp ; т.о. нет необходимости указывать реальный номер
;разряда регистра
<< - соответствующий в разряд того регистра, который нужен, будет записана 1, если применять по отношению к регистрам ввода/вывода.
Восьмиразрядный ТС с функцией сравнения/ШИМ
ТС формирует запрос прерывания при переполнении восьмиразрядного базового счётчика и выполняет функцию сравнения/ШИМ с формированием запроса прерывания T/C2 COMP.
Режим работы ТС определяется комбинацией состояний разрядов PWM2, COM21 и COM20 регистра управления. При 0 состоянии трёх названных разрядов формируется только запрос прерывания T/C2 OVF.
Разряды регистра управления
COM20 | COM21 | PWM2 | Доп.функция |
0 | 0 | 0 | нет |
1 | 1 | 0 | сравнение |
0 | 1 | 0 | сравнение |
1 | 0 | 0 | сравнение |
0 | 1 | 1 | ШИМ |
1 | 1 | 1 | ШИМ |
При реализации функции сравнения код, формируемый в базовом счётчике, сравнивается с кодом, записанным в регистр сравнения. Сравнение производится с помощью компаратора. При совпадении кодов устанавливается, определённое комбинацией состояний регистра управления, значение выходного сигнала на заданном выводе МК. Кроме этого переводится в единичное состояние разряд регистра запросов прерываний и при 1 состоянии соответствующего разряда регистра маскирования прерываний в блок управления поступает запрос прерывания T/C0 COMP.
Лекция 8. 31.10.2006.
Работа базового счётчика при выполнении функции сравнения зависит от состояния разряда СТС2 регистра управления.
При СТС2=0 базовый счётчик после совпадения кодов продолжает счёт до переполнения и далее выполняет счёт, начиная с 0.
При СТС2=1 базовый счётчик при совпадении кодов сбрасывается в 0 состояние и продолжает счёт, начиная с 0.
При реализации функции ШИМ базовый счётчик ведет счёт до получения максимального числа (255), а затем переводится в режим счёта на вычитание до получения минимального числа (0). Далее вновь переходит в режим счёта на сложение.
Состояние разряда COM20 определяет вид изменения выходного сигнала при совпадении кодов в счётчике и регистре сравнения. (см. рис.)
Максимальное время задержки для 8 разрядов при частоте 10МГц: 255•100 мкс.
Блок прерываний
Блок прерываний принимает запросы прерываний и организует переход к выполнению подпрограммы обслуживания прерывания.
Запросы прерывания поступают от внешних и внутренних источников.
Общее число запросов прерываний у МК разных типов составляет от 5 до 24.
В качестве входов для приёма запросов от внешних источников используются выводы параллельных портов ввода/вывода, для которых эта функция является альтернативной. При выполнении альтернативной функции вывод порта имеет альтернативное имя INTx (x=0,1,2...7). Запрос прерывания из внешнего источника может быть представлен низким или высоким уровнем, а также переходом от одного уровня к другому.
Все данные для МК 8538
Любой запрос прерывания поступает в блок прерываний, если прерывания в МК разрешены, т.е. установлен в 1 состояния бит 1 регистра состояний и разрешено прерывание по данному запросу. Прерывание по отдельному запросу разрешено, если в единичном состоянии находится маскирующий разряд для данного запроса прерывания, расположенный в одном из РВВ.
SREG: | |||||||||
| |||||||||
|
Рис.2. Регистр состояния SREG (Status Register).
Команды SEI, CLI:
SEI - Set Global Interrupt Flag
CLI - Clear Global Interrupt Flag
При появлении запроса прерывания устанавливается в единичное состояние флажковый разряд данного запроса прерывания, расположенный в одном из РВВ. Состояние этого бита может быть проанализировано как аппаратными, так и программными средствами.
При поступлении запроса блок прерываний организует аппаратный переход к выполнению команды, адрес которой (вектор прерывания) однозначно связан с именем запроса прерывания. По этому адресу в МК (8535) должна быть записана команда перехода RJAMP. По этой команде выполняется переход к первой команде соответствующей прерывающей программы.
При одновременном поступлении в блок прерываний нескольких запросов в нём выделяется запрос с наиболее высоким приоритетом и выполняется переход по адресу, соответствующему этому запросу.
Адреса и приоритеты запросов прерывания
.include "m8535def.inc"
;Установка векторов прерываний
.org 0 ; В эту точку МК попадает после пуска или