Функціонування таймера Т1
Таймер Т1 є 16-розрядним. Для нього допустимі всі режими роботи, характерні для таймерів Т0 і Т2. Крім того, він може по зовнішньому сигналу зберігати свій стан в окремому регістрі (режим захоплення). rn До складу таймера Т1 входять лічильної регістр TCNT1, реєстр захоплення ICR1, два регістру порівняння OCR1A і OCR1B (всі регістри 16-розрядні), два 8-розрядних регістра управління TCCR1A і TCCR1B. Всі 16-розрядні регістри реалізовані як пара 8-розрядних з відповідними іменами: TCNT1H і TCNT1L. rn переривання, що генеруються таймером, представлені в табл.27.2. Дозвіл переривань задається через регістр TIMSK (табл. 27.1). rn Режим захоплення - запис поточного стану TCNT1 в регістрі ICR1 - производится по фронту сигналу на вході ICP1 або по сигналу від аналогового компаратор. rn Основний засіб керування таймером Т1 - регістри TCCR1A і TCCR1B. Призначення їх розрядів і принципи управління представлені в табл.27.6 і 27.7 відповідно. rn Таблиця 27.6. rn Принципи управління таймером Т1 через регістр TCCR1А rn rn rn rn rn Біт rn | rn rn Назва rn | rn rn Опис призначення rn | rn rn rn rn 7,6 rn | rn rn COM1A1, COM1A0 rn | rn rn Режим роботи блоку порівняння А. Розряд визначають поведінку виведення OC1A при настанні події «Режим» в залежності від режиму роботи таймера. Для режимів Normal і CTC доступні такі стану rn rn rn rn rn COM1A1 rn | rn rn COM1A0 rn | rn rn Опис стану виводу OC1A rn | rn rn rn rn 0 rn | rn rn 0 rn | rn rn Таймер відключений від виведення OC1A rn | rn rn rn rn 0 rn | rn rn 1 rn | rn rn Зміна на протилежну rn | rn rn rn rn 1 rn | rn rn 0 rn | rn rn Висновок скидається у «0» rn | rn rn rn rn 1 rn | rn rn 1 rn | rn rn Висновок встановлюється в «1» rn | rn rn rn rn | rn rn rn rn 5,4 rn | rn rn COM1B1, COM1B0 rn | rn rn Режим роботи блоку порівняння B. Визначає стан виведення OC1B при настанні події «Режим». Для режимів Normal і CTC доступні такі стану rn rn rn rn rn COM1B1 rn | rn rn COM1B0 rn | rn rn Опис стану виводу OC1B rn | rn rn rn rn 0 rn | rn rn 0 rn | rn rn Таймер відключений від виведення OC1B rn | rn rn rn rn 0 rn | rn rn 1 rn | rn rn Зміна на протилежну rn | rn rn rn rn 1 rn | rn rn 0 rn | rn rn Висновок скидається у «0» rn | rn rn rn rn 1 rn | rn rn 1 rn | rn rn Висновок встановлюється в «1» rn | rn rn rn rn | rn rn rn rn 3,2 rn | rn rn FOC1A, FOC1B rn | rn rn Примусове зміна стану висновків OC1A і OC1B в режимах Normal і CTC (залежить від бітів COM nxi ) rn | rn rn rn rn 1,0 rn | rn rn WGM1, rn WGM0 rn | rn rn Режим роботи таймера лічильника Т1. Використовуються спільно з битами WGM3, WGM2 регістру TCCR1B - див. табл. 27.8 rn | rn rn rn rn Таблиця 27.7. rn Принципи управління таймером Т1 через регістр TCCR1B rn rn rn rn rn Біт rn | rn rn Назва rn | rn rn Опис призначення rn | rn rn rn rn 7 rn | rn rn ICNC1 rn | rn rn Управління схемою придушення перешкод блоку захоплення rn | rn rn rn rn 6 rn | rn rn ICES1 rn | rn rn Вибір активного фронту сигналу захоплення rn | rn rn rn rn 5 rn | rn rn - rn | rn rn Не використовується rn | rn rn rn rn 4,3 rn | rn rn WGM3, rn WGM2 rn | rn rn Режим роботи таймера лічильника Т1. Використовуються спільно з битами WGM1, WGM0 регістру TCCR1А - див. табл. 3.11 rn | rn rn rn rn 2 ... 0 rn | rn rn SC12 ... SC10 rn | rn rn Управління тактовим сигналом. Розряди визначають джерело тактового сигналу для таймера Т1. Настройка відповідає табл.27.4 (як для таймера Т0). rn | rn rn rn rn Робота таймера Т1 в режимах Normal й CTC rn У цих режимах функціонування таймера Т1 аналогічно роботі таймера Т0, з тією різницею, що рахунок проводиться в 16-розрядної конфігурації (від $ 0000 до максимум $ FFFF). При досягненні максимуму $ FFFF формується прапор переривання TOV1, а при збігу значень TCNT1 і OCR1A або OCR1B - прапори OCF1A або OCF1B відповідно. rn Таблиця 27.8. rn Вибір режиму роботи таймера Т1 rn rn rn rn rn WGM13 rn | rn rn WGM12 rn | rn rn WGM11 rn | rn rn WGM10 rn | rn rn Режим роботи rn | rn rn Модуль рахунку rn | rn rn rn rn 0 rn | rn rn 0 rn | rn rn 0 rn | rn rn 0 rn | rn rn Normal, 16-розрядний рахунок rn | rn rn $ FFFF rn | rn rn rn rn 0 rn | rn rn 0 rn | rn rn 0 rn | rn rn 1 rn | rn rn Phase correct PWM, 8-розрядний rn | rn rn $ 00FF rn | rn rn rn rn 0 rn | rn rn 0 rn | rn rn 1 rn | rn rn 0 rn | rn rn Phase correct PWM, 9-розрядний rn | rn rn $ 01FF rn | rn rn rn rn 0 rn | rn rn 0 rn | rn rn 1 rn | rn rn 1 rn | rn rn Phase correct PWM, 10-розрядний rn | rn rn $ 03FF rn | rn rn rn rn 0 rn | rn rn 1 rn | rn rn 0 rn | rn rn 0 rn | rn rn CTC (скидання при збігу) rn | rn rn OCR1A rn | rn rn rn rn 0 rn | rn rn 1 rn | rn rn 0 rn | rn rn 1 rn | rn rn Fast PWM, 8-розрядний rn | rn rn $ 00FF rn | rn rn rn rn 0 rn | rn rn 1 rn | rn rn 1 rn | rn rn 0 rn | rn rn Fast PWM, 9-розрядний rn | rn rn $ 01FF rn | rn rn rn rn 0 rn | rn rn 1 rn | rn rn 1 rn | rn rn 1 rn | rn rn Fast PWM, 10-розрядний rn | rn rn $ 03FF rn | rn rn rn rn 1 rn | rn rn 0 rn | rn rn 0 rn | rn rn 0 rn | rn rn Phase and Frequency Correct PWM rn | rn rn ICR1 rn | rn rn rn rn 1 rn | rn rn 0 rn | rn rn 0 rn | rn rn 1 rn | rn rn Phase and Frequency Correct PWM rn | rn rn OCR1A rn | rn rn rn rn 1 rn | rn rn 0 rn | rn rn 1 rn | rn rn 0 rn | rn rn Phase correct PWM rn | rn rn ICR1 rn | rn rn rn rn 1 rn | rn rn 0 rn | rn rn 1 rn | rn rn 1 rn | rn rn Phase correct PWM rn | rn rn OCR1A rn | rn rn rn rn 1 rn | rn rn 1 rn | rn rn 0 rn | rn rn 0 rn | rn rn CTC (скидання при збігу) rn | rn rn ICR1 rn | rn rn rn rn 1 rn | rn rn 1 rn | rn rn 0 rn | rn rn 1 rn | rn rn Зарезервовано rn | rn rn - rn | rn rn rn rn 1 rn | rn rn 1 rn | rn rn 1 rn | rn rn 0 rn | rn rn Fast PWM rn | rn rn ICR1 rn | rn rn rn rn 1 rn | rn rn 1 rn | rn rn 1 rn | rn rn 1 rn | rn rn Fast PWM rn | rn rn OCR1A rn | rn rn rn rn Робота таймера Т1 в режимі Fast PWM й Phase Correct PWM rn Режим Fast PWM (швидкодіючий шим), дозволяє генерувати високочастотний широтному-модульований сигнал. Сумуються рахунок проводиться на регістрі TCNT1. Ширина чергового імпульсу буде визначатися поточним вмістом регістру порівняння OCR1А). Важливо, що змінювати вміст цього регістру можна без зупинки таймера, при цьому перешкоди від перемикання не виникають. rn Стан лічильника TCNT1 змінюється циклічно від $ 0000 до $ FFFF, при цьому за переповнення формується прапор переривання TOV1, а при рівності лічильно регістру TCNT1 та одного з регістрів порівняння OCR1А або OCR1В встановлюється прапор переривання OCF1А або OCF1В відповідно. Стан висновків OC1А і OC1В в момент досягнення стану «Режим» визначається вмістом пар розрядів (COM1А1, COM1А0) і (COM1В1, COM1В0) відповідно згідно табл.27.9. rn Частота генерованих шим-імпульсів визначається співвідношенням rn FOC 1 = FCLKsys /(2 N < /em> * TOP ), rn де N - коефіцієнт розподілу предделітеля, TOP - модуль рахунку, обумовлений битами WGM13 ... WGM10 згідно табл.27.8. rn Наявність двох регістрів порівняння OCR1А або OCR1В і двох висновків сигналів OC1А і OC1В дозволяє за допомогою одного таймер Т1 генерувати дві послідовності шим-імпульсів з роздільним управлінням (щоправда, з однаковою частотою). Таке використання таймера Т1 переважно для реалізації двухкоордінатного управління технологічним обладнанням. Саме таймер Т1 використаний як генератора шим-імпульсів у складі системи УУМС-2. rn Таблиця 27.9. rn Настройка поведінки висновків OC1А (OC1В) в режимі Fast PWM rn rn rn rn rn COM1А (B) 1 rn | rn rn COM1A (B) 0 rn | rn rn Опис стану виводу OC1A (ОС1B) rn | rn rn rn rn 0 rn | rn rn 0 rn | rn rn Таймер-лічильник Т1 відключений від виведення OC1A (ОС1B) rn | rn rn rn rn 0 rn | rn rn 1 rn | rn rn При WGM13 = 0 таймер Т1 відключений від OC1A (ОС1B). rn При WGM13 = 1 стан виведення OC1A (ОС1B) змінюється на протилежне rn | rn rn rn rn 1 rn | rn rn 0 rn | rn rn Висновок скидається у «0» при досягненні рівності регістрів TCNT1 і OCR1A (B). Встановлюється в «1» при досягненні TCNT1 = $ 0000 (неінвертірованний шим) rn | rn rn rn rn 1 rn | rn rn 1 rn | rn rn Висновок встановлюється в «1» при досягненні рівності регістрів TCNT1 і OCR1A (B). Скидається у «0» при досягненні TCNT0 (2) = $ 0000 (Інвертований шим) rn | rn rn rn rn Реалізація режиму Phase Correct PWM для таймера Т1 схожа на функціонування таймера Т0 в цей режим з тією різницею, що рахунок здійснюється від $ 0000 до $ FFFF і назад до $ 0000. Управління здійснюється відповідними розрядом для таймера Т1. Режим Phase and Frequency Correct PWM в цій статті не розглядається. rn Також в даних матеріалах не розглядається функціонування сторожового таймера WDT.
|