Professional Documents
Culture Documents
Lection - 12 - MCMPT Мікропроцесори
Lection - 12 - MCMPT Мікропроцесори
Зокрема, регістр налаштувань містить 8 біт, а кожен біт має свою назву
та установчу (конфігураційну) змінну. Наприклад, для налаштування роботи
T/Л1 на деякій тактовій частоті використовуються два регістри управління із
назвою TCCR кожен з яких має власні конфігураційні змінні. Розглянемо
детальніше призначення основних регістрів, що використовуються при
налаштуванні таймеру в МК серії AVR.
● ASSR – регістр статусу асинхронного режиму.
● TCCR – регістр управління (швидкості та режимів рахунку). Три
біта регістру (CS12, CS11 і CS10) визначають тактову частоту
таймера, а обираючи різні їх комбінації, можна отримати і різну
швидкість роботи таймеру та задавати параметри переддільника.
● TCNT – регістр підрахунку імпульсів.
● OCR – регістр порівняння.
Режим "Захоплення"
Суть цього Capture-режиму полягає в збереженні вмісту рахункового
регістра таймера у певний момент часу. При роботі у такому режимі,
запам'ятовування відбувається або за сигналом, що надходить через
спеціальний вхід мікроконтролера, або за сигналом з виходу вбудованого
компаратора МК. Цей режим зручний для використання у випадках, коли
потрібно виміряти тривалість будь-якого зовнішнього процесу. Наприклад
час, протягом якого напруга на конденсаторі досягає певного значення. У
цьому випадку напруга з конденсатора може подаватись на один із входів
компаратора, в той час як на другий його вхід - подаватиметься опорна
напруга. Мікроконтролер повинен одночасно запустити два ці процеси:
подати напругу на конденсатор і запустити таймер у режимі Capture. Тоді, як
тільки конденсатор починає заряджатися, напруга на ньому буде плавно
зростати. Одночасно лічильник таймера буде відраховувати тактові імпульси
заданої частоти, а у момент коли рівень напруги на конденсаторі зрівняється з
опорною напругою - логічний рівень на виході компаратора зміниться на
протилежний. За цим сигналом поточне значення рахункового регістру
запишеться у спеціальному регістрі захоплення, що має назву ICRx (для
Т/Л0 - це буде регістр ICR0, для T1 - ICR1, тощо) та одночасно згенерується
запит на переривання.
Режим "Скидання при співпадінні"
Для роботи у цьому режимі використовується спеціальний регістр
порівняння. Якщо мікроконтролер містить кілька таймерів, то для кожного з
них існує свій окремий регістр порівняння. Для восьмирозрядних таймерів
регістр - це один восьмирозрядний регістр, а для шістнадцяти розрядних - два
восьми розрядні регістри (які мають позначення H i L, відповідно. Тут H -
старший розряд регістру, L - молодший розряд регістру).
Регістри порівняння також мають свої імена. Наприклад, для таймера
Т1 це регістри OCR1A та OCR1B. Якщо регістр збігу шістнадцяти розрядний,
то фізично він складається з двох регістрів вводу-виводу інформації.
Наприклад, два регістри збігу таймера Т1 мікросхеми АTMega8 фізично
являють собою чотири регістри вводу-виводу з іменами OCR1AL, OCR1AH,
OCR1BL, OCR1BH.
Регістри порівняння включаються у роботу лише тоді, коли
користувачем обрано режим СТС (скидання при співпадінні). У цьому
режимі, як і у режимі захоплення, таймер здійснює підрахунок кількості
вхідних імпульсів. Поточне значення таймера з його лічильного регістра
постійно порівнюється з вмістом регістру порівняння. Якщо ж таймер має два
регістри порівняння, то для кожного з них проводиться окреме порівняння.
Коли вміст рахункового регістру збігатиметься з вмістом одного з регістрів
порівняння - системою здійснюється виклик відповідного переривання.
Окрім виклику переривання, в момент співпадіння може відбуватися також
одна з наступних подій:
● скидання таймера (характерно лише для регістрів порівння OCR1 та
OCRIA);
● зміна стану одного з виводів мікроконтролера (характерно для всіх
регістрів таймеру);
Варто зазаначити, що дозвіл на події, які можуть відбуватись після
виклику переривання задається користувачем при налаштуванні параметрів
таймера.
Асинхронний режим
У деяких моделях мікроконтролерів таймер може працювати і в
асинхронному режимі роботи. У цьому режимі на вхід Т/Л подається або
частота від внутрішнього кварцового генератора, або від зовнішнього
генератора сигналів. В такому випадку лічильник не генеруватиме жодних
переривань чи додаткових сигналів, а працюватиме як годинник реального
часу. При роботі у асинхронному режимі МК може попередньо
встановлювати вміст рахункового регістру. А вже потім, у будь-який момент
часу, зчитувати цей вміст, отримуючи таким чином поточне значення
реального часу.