Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Опис регістрів 8-розрядного таймера-лічильника 0

Поиск

Регістр управління таймером-лічильником 0 - TCCR0

Розряд                  
  FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00 TCCR0
Читання/запис Чт Чт/Зп. Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп Чт/Зп  
Поч. значення                  

Розряд 7 - FOC0: Примусова установка результату порівняння

Функція біта FOC0 активна тільки, якщо за допомогою біт WGM заданий один з режимів, де немає широтно-імпульсної модуляції. Однак з метою сумісності з наступними мікроконтролерами рекомендується під час запису в регістр TCCR0 в позиції даного біта вказувати лог., якщо таймер працює в одному з режимів з широтно-імпульсною модуляцією. Якщо записати лог. 1 в біт FOC0, то це призводить до примусової установки результату порівняння на вході блоку формування вихідного сигналу. Отже, значення записане в COM01, COM00 визначає ефект дії примусової установки результату порівняння. Зверніть також увагу, що біт FOC0 є стробуючим.

Строб FOC0 не генерує жодних переривань, а також не викликає скидання таймера в режимі СТС, де регістр OCR0 задає верхню межу лічби.

Біт FOC0 завжди зчитується як 0.

 

Розряди 6, 3 - WGM01: 0: Режим роботи таймера-лічильника 0

Дані біти визначають алгоритм лічби лічильника, джерело, яке задає верхню межу рахунку та тип генеруються прямокутних імпульсів. Даним таймером підтримуються наступні режими роботи: нормальний режим, режим скиду при збігу і два режими з широтно-імпульсною модуляцією. У таблиці представлені режими роботи таймера-лічильника 0

Опис біт, які задають режим роботи таймера-лічильника 0

Номер режиму WGM01 WGM00 Найменування режиму роботи таймера-лічильника 0 Верхня межа лічби Умова оновлення вмісту регістра OCR0 Умова установки мітки TOV0
      Нормальний 0xFF Відразу після запису в регістр Досягнення максимального значення (0xFF)
      ШІМ з фазовою корекцією 0xFF Досягнення верхньої межі лічби Досягнення мінімального значення (0x00)
      Скидання при збігу (CTC) OCR0 Відразу після запису в регістр Досягнення максимального значення (0xFF)
      Швидка ШІМ 0xFF Досягнення верхньої межі лічби Досягнення максимального значення (0xFF)

 

Розряди 5:4 - COM01, COM00: Режим формування вихідного сигналу

Дані біти визначають алгоритм зміни сигналу на виводі OC0. Якщо значення даних біт ненульове, то функція виводу OC0 як звичайного порту вводу-виводу замінюється на альтернативну. Однак, слід враховувати, що напрямок цього виводу також управляється через регістр напрямку даних порту В (DDRB). Тому, для дозволу альтернативної функції виводу OC0 також необхідно встановити біт 4 (OC0) в регістрі DDRB для установки вихідного напряму.

Після активізації альтернативної функції призначення біт COM01, COM00 залежить від обраного режиму роботи таймера бітами WGM01, WGM00У таблиці 53 приведено призначення біт COM01, COM00, якщо за допомогою WGM01, WGM00 заданий нормальний режим або режим скидання при збігу (тобто режими без ШІМ).

 

Таблиця Режими формування вихідного сигналу в режимах роботи таймера 0 без ШІМ

COM01 COM00 Опис
    Функція звичайного порту вводу-виводу. OC0 відключений.
    Перемикання (інвертування) OC0 при кожному збігу
    Скидання OC0 при кожному збігу
    Установка OC0 при кожному збігу

У таблиці наступній таблиці наведено призначення біт COM01, COM00 для режиму роботи таймера-лічильника 0 з швидкою ШІМ (WGM01: 0).

Зазначення цих бітів для режимів з ШІМ дивіться у опис даного мікроконтролера

 

Розряди 2:0 - CS02: 0: Настройка частоти синхронізації таймера

За допомогою трьох настроювальних біт є можливість вибрати різні тактові частоти, кратні вхідній частоті синхронізації

Таблиця вибору частоти синхронізації таймера 0

CS02 CS01 CS00 Опис
      Немає синхронізації. Таймер-лічильник 0 зупинений.
      clkT0S/1 (без ділення частоти)
      clkT0S/8 (з діленням частоти)
      clkT0S/32 (з діленням частоти)
      clkT0S/64 (з діленням частоти)
      clkT0S/128 (з діленням частоти)
      clkT0S/256 (з діленням частоти)
      clkT0S/1024 (з діленням частоти)

 

Регістр таймера-лічильника - TCNT0

Розряд                  
  TCNT0[7:0] TCNT0
Читання/запис Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп.  
Поч. значення                  

 

Регістр таймера-лічильника характеризується двоспрямованістю доступу до 8-розрядному лічильнику таймера 0. Зміна вмісту лічильника (TCNT0) під час лічби пов'язано з ризиком втрати результату порівняння між TCNT0 і регістром OCR0.

 

Регістр порогу порівняння - OCR0

Розряд                  
  OCR0[7:0] OCR0
Читання/запис Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп.  
Поч. значення                  

 

Регістр порогу порівняння містить 8-розр. значення, яке безперервно порівнюється цифровим компаратором зі значенням 8-розр. лічильника (TCNT0). Факт збігу значень може використовуватися для генерації переривання по виконанню умови порівняння або для генерації прямокутних імпульсів на виводі OC0.

Асинхронна робота таймера-лічильника 0

Регістр асинхронного стану - ASSR

Розряд                  
  - - - - AS0 TCN0UB OCR0UB TCR0UB ASSR
Читання/запис Чт. Чт Чт Чт Чт./Зп. Чт Чт Чт  
Поч. значення                  

 

Розряд 3 - AS0: Дозвіл асинхронного тактування таймера-лічильника 0

Якщо AS0 = 0, то таймер лічильник 0 тактується сигналом синхронізації вводу-виводу - clkI/O. Якщо AS0 = 1, то таймер-лічильник 0 тактується низькочастотним кварцовим генератором, зв’язаним з задаючим кварцом через виводи TOSC1 і TOSC2. При зміні значення AS0 значення регістрів TCNT0, OCR0 і TCCR0 може бути порушено.

У даній лабораторній роботі не використовується асинхронний режим роботи таймера, тому додаткову інформацію про асинхронний режим, поля (біти) регістру асинхронного стану, а також додаткові описи дивіться у опис до мікроконтролера.

 

 

Регістр маски переривань таймерів-лічильників - TIMSK

Розряд                  
  OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 OCIE0 TOIE0 TIMSK
Читання/запис Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп.  
Поч. значення                  

 

Розряд 1 - OCIE0: Дозвіл переривання по результату порівняння таймера-лічильника 0

Якщо OCIE0 = 1, а також встановлений біт I в регістрі статусу, то переривання по результату порівняння таймера-лічильника 0 активізується. В цьому випадку переривання виникає, якщо виникає збіг значення таймера-лічильника 0 з порогом порівняння, тобто коли встановлений прапор OCF0 в регістрі прапорів переривань таймерів-лічильників TIFR.

Розряд 0 - TOIE0: Дозвіл переривання по переповненню таймера-лічильника 0

Якщо TOIE0 = 1, а також встановлений біт I в регістрі статусу, то переривання по переповненню таймера-лічильника 0 дозволяється. У цьому випадку запит на переривання генерується, якщо виявляється переповнення таймера-лічильника 0, тобто коли встановлена мітка TOV0 в регістрі міток переривань таймерів-лічильників TIFR.

Біти, фон яких позначено не жовтим кольором, а сірим не стосуються таймера-лічильника 0.

 

Регістр міток переривань таймерів-лічильників - TIFR

Розряд                  
  OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 OCF0 TOV0 TIFR
Читання/запис Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп. Чт./Зп.  
Поч. значення                  

Розряд 1 - OCF0: Мітка збігу таймера-лічильника 0

OCF0 дорівнює лог. 1, якщо виникає збіг між значенням таймера-лічильника 0 і даними в регістрі OCR0 (регістр порогу порівняння). OCF0 скидається апаратно при переході на відповідний вектор переривання. Альтернативно, мітка OCF0 може бути скинута шляхом запису в нього лог. 1. Якщо встановлені біт I в регістрі SREG, біт OCIE0 (дозволено переривання по виконанню умови порівняння таймера-лічильника 0) і мітка OCF0, то генерується переривання по виконанню умови порівняння таймера-лічильника 0.

Розряд 0 - TOV0: Мітка переповнення таймера-лічильника 0

Мітка TOV0 встановлюється, якщо в таймері-лічильнику 0 виникає переповнення. Мітка TOV0 скидається апаратно при переході на відповідний вектор переривання. Альтернативно, мітка TOV0 скидається шляхом запису в нього лог. 1. Якщо встановлені біт I в регістрі SREG, біт TOIE0 (дозволено переривання по переповнення таймера-лічильника 0) і мітка TOV0, то генерується переривання по переповненню таймера-лічильника 0. У режимі ШІМ дана мітка встановлюється, якщо таймер-лічильник 0 змінює напрям лічби на значенні 0x00.

Біти, фон яких позначено не жовтим кольором, а сірим не стосуються таймера-лічильника 0.

 

 



Поделиться:


Последнее изменение этой страницы: 2016-04-18; просмотров: 355; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.144.199 (0.009 с.)