Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Простейший 8-битный счетчик



8-разрядный таймер/счетчик 0 (Timer/Counter0) тактируется сигналом синхронизации процессорного ядра (СК) или от встроенного предделителя (Preskaller), или от внешнего контакта ТО (рис. 12.1).


Рис.12.1. Таймер/счетчик 0 микроконтроллера ATmegal63

Таймер счетчик предназначен для выполнения простейших операций: его содержимое программно доступно процессорному ядру для чтения и записи, а при переполнении счетчика вырабатывается запрос на прерывание программы.

Для управления счетчиком используются (рис. 12.2):

0 регистр управления TCCR0 (Timer/Counter0 Control Register),

0 регистр данных TCNT0 (Timer/Counter0),

0регистр флагов прерывания TIFR (Timer/Counter Interrupt Flag Register),

0 регистр маски прерывания TIMSK (Timer/Counter Interrupt Mask Register),

0 регистр состояния микроконтроллера SREG (Status Register).

Если таймер/счетчик осуществляет счет внешних импульсов, то последние синхронизируются сигналом синхронизации процессорного ядра.


Рис. 12.2. Регистры, участвующие в управлении таймером/счетчиком 0

Регистр TCCR0 (Timer/Counter 0 Control Register) управляет тактовой частотой таймера/счетчика 0.

0 Биты 2..0 - CS02, CS01, CS00 (Clock Select0, Bit 2,1 and 0) - задают коэффициент деления предделителя таймер/счетчика 0 и тип внешнего сигнала (табл. 12.1).

Таблица 12.1. Коэффициенты деления предделителя таймера/счетчика 0

CS02 CS01 CS00 Описание
      Остановка таймера
      СК
      CK/8
      CK/64
      СК / 256
      СК/1024
      Внешний контакт T0, задний фронт
      Внешний контакт T0, передний фронт

Timer/Counter0 является суммирующим счетчиком, доступным для чтения и записи. Регистр TCNT0 хранит содержимое счетчика.

Регистр - TIMSK (Timer/Counter Interrupt Mask Register) является регистром маски прерываний.

0 Бит 0 - TOIE0 (Timer/Counter0 Overflow Interrupt Enable) - разрешение прерывания при переполнении счетчика. Когда бит TOIE0 установлен, а также установлен бит I в регистре SREG (Status Register), то прерывание при переполнении Timer/Counter0 разрешается. Соответствующий вектор прерывания TIMER0 OVF имеет адрес $012. Прерывание произойдет при установке бита TOV0 в регистре TIFR (Timer/Counter Interrupt Flag Register). Регистр- TIFR (Timer/Counter Interrupt Flag Register) является регистром флагов прерывания.

0 Бит 0 - TOV0 (Timer/Counter0 Overflow Flag) - флаг переполнения таймера/счетчика 0. Бит устанавливается при переполнении таймера/счетчика 0 и сбрасывается аппаратно при выполнении соответствующего прерывания ($012) или программно при записи 0. Прерывание происходит, если бит I в регистре SREG установлен, а также установлен бит TOIE0 (Timer/Counter0 Overflow Interrupt Enable) в регистре TIMSK.





Дата публикования: 2014-11-03; Прочитано: 1283 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...