Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Описание регистров TIFR, TCNT0, TCCR0, SREG




  Регистр флагов прерываний по таймерам/счетчикам TIFR
Бит  
$38 ($58) OCF2 TOV2 ICFl OCF1A OCF1B ТОV1 OCF0 TOV0 TIFR
Чтение/Запись R/W R/W R/W R/W R'W R/W R/W R/W  
Исходное значение  

 

Бит 7 - OCF2: Флаг выхода совпадения T/C2: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 2 и данных в регистре OCR. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE2 в TIMSK, при установке бита OCF2 выполняется прерывание.

Бит 6 –TOV2: Флаг переполнения таймера/счетчика 2: Флаг TOV2 устанавливается ("1") при переполнении таймера/счетчика 0. Флаг сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно очистить записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE2 в TIMSK, при установке бита TOV2 выполняется прерывание по переполнению таймера/счетчика 2.

Бит 5 - ICF1: флаг входа захвата 1: бит устанавливается ("1") при возникновении события захвата по входу, он индицирует, что значение таймера/счетчика 1 скопировано в регистр захвата по входу ICR1. ICF1 очищается при выполнении соответствующего вектора обработки прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.

Бит 4 - OCF1A: Флаг выхода совпадения 1А: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 1 и данных в регистре OCR1A. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE1A в TIMSK, при установке бита OCF1A выполняется прерывание.

Бит 3 - OCF1B: Флаг выхода совпадения 1B: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 1 и данных в регистре OCR1B. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE1B в TIMSK, при установке бита OCF1B выполняется прерывание.

Бит 2 -TOV1: Флаг переполнения таймера/счетчика 1: Флаг TOV1 устанавливается ("1") при возникновении переполнения таймера/счетчика 1. Флаг TOV1 сбрасывается аппаратно при выполнении соответствующего вектора обработки прерывания. Кроме того, флаг можно сбросить, записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE1 в TIMSK, при установке бита TOV1 выполняется прерывание по переполнению таймера/счетчика 1. В режиме ШИМ этот бит устанавливается, когда таймер/счетчик 1 изменяет направление счета при значении $0000.



Бит 1 - OCF0: Флаг выхода совпадения T/C0: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 2 и данных в регистре OCR. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE0 в TIMSK, при установке бита OCF0 выполняется прерывание.

Бит 0 - TOV0: Флаг переполнения таймера счетчика 0: Флаг TOV0 устанавливается ("1") при переполнении таймера/счетчика 0. Флаг сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно очистить записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE0 в TIMSK, при установке бита TOV0 выполняется прерывание по переполнению таймера/счетчика 0.

Каждое из прерываний по таймерам/счетчикам выполняется при установленном бите I в регистре SREG, установленных бите разрешения прерывания и соответствующем флаге прерывания. Флаг прерывания аппаратно сбрасывается при обработке соответствующего вектора прерывания. Возможна очистка бита записью во флаг логической единицы. Программно установить флаг таймера/счетчика, записав в него логическую единицу, невозможно.

 

8-разрядный таймер/счетчик 0 осуществляет счет в регистре TCNT0.



  Таймер/счетчик 0 - TCNT0
Бит  
$32 ($52) MSB             LSB TCNT0
Чтение/Запись R/W R/W R/W R/W R/W R/W R/W R/W  
Исходное значение  

 

Аналогичный формат имеет регистр сравнения таймера/счетчика 0 OCR0, его адрес – $3C ($5C).

Таймер/счетчик 0 управляется регистром управления TCCR0.

  Регистр управления таймером/счетчиком 0 – TCCR0
Бит  
S33 ($53) FOC0 WGMО0 COMО1 COMО0 WGMО1 CS02 CS01 CS00 TCCR0
Чтение/Запись W R/W R/W R/W R/W R/W R/W R/W  
Исходное значение  

 

Бит 7 –FOC0: Force Output Compare – Принудительное изменение состояния вывода ОС0 (режимы Normal и СТС).

При записи лог. 1 в этот разряд состояние вывода ОС0 изменяется в соответствии установкам разрядов СОМ01:СОМ00. Прерывание при этом не генерируется и сброс таймера (в режиме СТС) не производится. В режимах Fast PWM и Phase Correct PWM этот разряд должен быть сброшен в «0». При чтении разряда всегда возвращается «0».

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

Бит FOC0всегда считывается как 0.

Биты 6, 3 – WGMО0:01: Waveform Generation Mode – Режим работы таймера/счетчика 0.

Эти разряды определяют режим работы таймера/счетчика 0 в соответствии с табл. 14:

Данные биты определяют: алгоритм счета счетчика, источник, который задает верхний предел счета и тип генерируемых прямоугольных импульсов.

 

Таблица 14. Режимы работы таймера/счетчика 0

Номер режима WGMО1 WGMО0 Название режима Наименование режима работы таймера-счетчика 0 Верхний предел счета Условие обновления содержимого регистра OCR0 Условие установки флага TOV0
Normal Нормальный 0xFF Сразу после записи в регистр Достижение максимального значения (0xFF)
Phase correct PWM ШИМ с фазовой коррекцией 0xFF Достижение верхнего предела счета Достижение минимального значения (0x00)
СТС (сброс при совпадении) Сброс при совпадении OCR0 Сразу после записи в регистр Достижение максимального значения (0xFF)
Fast PWM Быстрый ШИМ 0xFF Достижение верхнего предела счета Достижение максимального значения (0xFF)

 

Биты 5, 4 – COMО1:О0: Compare Output Mode – Режим работы блока сравнения.

Эти разряды определяют поведение вывода ОС0 при наступлении события «Совпадение». Влияние содержимого этих разрядов на состояние вывода зависит от режима работы таймера/счетчика.

Биты 2, 1, 0 – CS02, CS01, CS00: Clock Select – Выбор тактовой частоты.

Эти биты позволяют выбрать источник тактового сигнала для таймера/счетчика 0: системный тактовый сигнал ТС с частотой fТС, масштабированный тактовый сигнал с выхода определенной ступени предварительного делителя частоты или внешний сигнал, поступающий на вход T0, а также запускать и останавливать таймер/счетчик 0 (см. табл. 15). Если таймер/счетчик 0 используется как счетчик, то вывод Т0 конфигурируется как вход.

 

 

Таблица 15. Выбор источника тактового сигнала

CS02 CS01 CS00 Описание
Таймер/счетчик 0 остановлен
fТС
fТС / 8
fТС / 64
fТС / 256
fТС / 1024
Внешний вывод Т0, падающий фронт
Внешний вывод Т0, нарастающий фронт

 

Наиболее простой режим работы таймера/счетчика 0 – режим Normal. В этом режиме счетный регистрTCNT0 функционирует как обычный суммирующий счетчик, по каждому импульсу тактового сигнала осуществляется его инкрементирование. При переходе через значение $FF возникает переполнение, и счет продолжается со значения $00. Флаг прерывания по переполнению TOV0при этом устанавливается в 1. При равенстве счетного регистра и регистра сравнения OCR0 устанавливается соответствующий флаг прерывания OCF0 и, если бит OCIE0 регистра маски установлен в 1, генерируется прерывание. Наряду с установкой флага при равенстве счетного регистра и регистра сравнения может изменяться состояние вывода ОС0 микроконтроллера. Каким образом оно будет изменяться, определяется битами СОМО1:СОМО0 регистра управления TCCR0 в соответствии с табл. 16.

Таблица 16. Управление выводом OC0 в режимах Normal и CTC

COMО1 COMО0 Описание
Таймер/счетчик 0 отключен от вывода ОС0
Состояние вывода меняется на противоположное
Вывод сбрасывается в 0
Вывод устанавливается в 1

 

  Регистр статуса (Регистр состояния) SREG Регистр статуса хранит информацию о результатах последней выполненной инструкции, он обновляется после каждой инструкции, выполненной АЛУ. Регистр статуса автоматически НЕ СОХРАНЯЕТСЯ перед входом в процедуру обработки прерывания и НЕ ВОССТАНАВЛИВАЕТСЯ после возврата из прерывания, сохранение и восстановление при необходимости должно выполняться программно. Все флаги доступны для чтения и записи, инициализируются (сбрасываются) значением 0. · Бит 7 –I: Общее разрешение прерываний. Для разрешения прерываний этот флаг должен быть установлен в «1» (команда #asm("sei")) Разрешение/запрещение отдельных прерываний производится установкой или сбросом соответствующих разрядов регистров масок прерываний (регистра управления прерываниями). Если флаг сброшен, то прерывания запрещены независимо от состояния разрядов этих регистров. Флаг сбрасывается аппаратно после входа в прерывание и восстанавливается командой RETI для разрешения обработки следующих прерываний. · Бит 6 –T: Хранение копируемого бита. Этот разряд регистра используется в качестве источника или приемника команд копирования битов BLD (Bit LoaD) и BST (Bit Store). Заданный разряд любого РОН может быть скопирован в этот разряд командой BST или установлен в соответствии с содержимым данного разряда командой BLD. · Бит 5 – H: Флаг половинного переноса. Этот флаг устанавливается в «1», если произошел перенос из младшей половины байта в старшую (из 3-го разряда в 4-й) или заем из старшей половины байта при выполнении некоторых арифметических операций. · Бит 4 – S: Флаг знака. Этот флаг равен результату операции «Исключающее ИЛИ» между флагами N (отрицательный результат) и V (переполнение числа в дополнительном коде). Соответственно этот флаг устанавливается в «1», если результат выполнения арифметической операции меньше нуля. · Бит 3 – V: Флаг переполнения дополнительного кода. Этот флаг устанавливается в «1», при переполнении разрядной сетки знакового результата. Используется при работе со знаковыми числами (представленными в дополнительном коде). · Бит 2 – N: Флаг отрицательного значения. Этот флаг устанавливается в «1», если старший (7-й) разряд результата операции равен «1». В противном случае флаг равен «0». · Бит 1 – Z: Флаг нулевого значения. Этот флаг устанавливается в «1», если результат выполнения операции равен нулю. · Бит 0 – C: Флаг переноса. Этот флаг устанавливается в «1», если в результате выполнения операции произошел выход за границы байта.   Регистр состояния SREG автоматически не сохраняется при переходе к прерывающей подпрограмме, т.е. при необходимости он должен быть программно сохранён и при возвращении из прерывающей подпрограммы восстановлен.

 


 


mylektsii.ru - Мои Лекции - 2015-2019 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал