русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Архитектура таймера


Дата додавання: 2014-05-19; переглядів: 1006.


Все починається з переддільника вхідної частоти. Наз. він prescaler (встановлював масштабу).

Потрібен для того, щоб вибирати частоту, що подається на вхід таймера:

Дві трапеції знизу - це мультиплексори . В залежності від коду(CS10..CS12 и CS00..CS02), на вихід мультиплексора подаєтся сигнал с одного з восьми входів:

0. (000) Нема тактової частоти (за замовчуванням)

1. (001) CK (не поділена тактова частота контролера) 2. (010) CK / 8

3. (011) CK/64 4. (100) CK/256 5. (101) CK/1024

6. (110) Інвертований сигнал з виводу ІМС МК (T0 або T1)

7. (111) Неінвертірованний сигнал з виводу ІМС МК

Щоб вибрати для таймера необхідне джерело тактового сигналу, необхідно записати його адресу у відповідні біти регістрів TCCR0 - для 0-го таймера, і TCCR1B - для 1-го таймера. Які біти - дивимося на малюнки:)

TIMSK - Timer Interrupt MaSK register - регістр маски переривань

TIFR - Timer Interrupt Flag Register - регістр прапорів переривань

TCCR1A - Timer/Counter1 Control Register A - контрольний регістр 1-го таймера А

TCCR1B - Timer/Counter1 Control Register B - контрольний регістр 1-го таймера B

Control logic - керуюча логіка

ICR1 - timer/counter1 Input Capture Register1 - вхідний регістр засувки 1-го таймера

TCNT1 - Timer/CouNTer1 - власне, регістр стану таймера

16-bit Comparator - компаратор

OCR1A - timer / counter Output1 Compare Register A - вихідний регістр компаратора A

 

TIMSK - він визначає, які переривання таймера ми будемо використовувати

TCCR1B - регістр управління 1-м таймером

TCNT0 - власне, регістр стану таймера. Його ми будемо обнуляти по перериванню компаратора

OCR1A - у нього завантажується число, з яким порівнює компаратор

Ось так виглядає регістр TIMSK:

 
 

Він однаковий для обох таймерів, тому в ньому є біти відповідають за переривання і того й іншого таймера. Подивимося, хто за що відповідає:

7 - TOIE1 - Timer/Counter1 Overflow Interrupt Enable - дозвіл переривання по переповнення 1-го таймера

6 - OCIE1A - Timer/Counter1 Output Compare Match Interrupt Enable - дозвіл переривання компаратора 1-го таймера

5,4 - ні за що не відповідають (зарезервовані)

3 - TICIE1 - Timer/Counter1 Input Capture Interrupt Enable - дозвіл переривання захоплення 1-го таймера

2 - зарезервований

1 - TOIE0 - Timer/Counter0 Overflow Interrupt Enable - дозвіл переривання по переповнення 0-го таймера

0 - зарезервований

 



<== попередня лекція | наступна лекція ==>
Лекція 17 Робота системних таймерів AVR, переривання, АЦП, повслідовний порт | Аналогово-цифровий перетворювач.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн