| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
ICNC1 | ICES1 | - | - | CTC1 | CS12 | CS11 | CS10 | ||||
R\W | R\W | R | R | R\W | R\W | R\W | R \ W | ||||
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит7 - ICNC1: Подавитель входного шума входа захвата: Если этот бит сброшен (0), подавление входного шума входа захвата запрещено. При это захват срабатывает по первому заданному (нарастающему или спадающему) фронту сигнала на выводе ICP. При установке бита обрабатываются четыре последовательные выборки сигнала на выводе ICP. Для срабатывания захвата все выборки должны соответствовать уровню заданному битом ICES1. Частота выборок равна тактовой частоте процессора.
Бит 6 - ICES1: выбор фронта сигнала захвата: Если бит ICES1 сброшен (0) содержимое таймера/счетчика 1 переписывается в регистр захвата по спадающему фронту сигнала на выводе ICP. Если бит установлен - по нарастающему фронту сигнала.
Биты 5,4 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и всегда читаются как 0.
Бит 3 - CTC1: Очистка таймера счетчика 1 по совпадению: Если бит установлен (1), таймер/счетчик 1 устанавливается в 0000h в такте следующем за событием совпадения. Если бит сброшен, таймер/счетчик 1 продолжает считать, совпадение не отражается на состоянии таймера/счетчика. Поскольку совпадение обнаруживается процессором в цикле следующем
за событием совпадения, в следующем после совпадения такте в счетчик запишется число на 1 большее значения регистра совпадения. При коэффициенте деления 1, установке регистра совпадения на величину С и установленном бите CTC1, таймер принимает следующие значения:
...С-1,С,С+1,0,1...
при делении тактовой частоты на 8:
...С-1,С-1,С-1,С-1,С-1,С-1,С-1,С-1,С,С,С,С,С,С,С,С, С+1,0,0,0,0,0,0,0,0,1...
В режиме ШИМ этот бит не работает.
Биты 2,1,0 - CS12, CS11, CS10: выбор тактирования: Эти биты определяют источник счетных импульсов для таймера/счетчика 1.
Таблица 11. Выбор источника счетных импульсов
CS12 | CS11 | CS10 | Описание |
0 | 0 | 0 | Таймер/счетчик 1 остановлен |
0 | 0 | 1 | CK |
0 | 1 | 0 | CK/8 |
0 | 1 | 1 | CK/64 |
1 | 0 | 0 | CK/256 |
1 | 0 | 1 | CK/1024 |
1 | 1 | 0 | Спадающий фронт на выводе T1 |
1 | 1 | 1 | Нарастающий фронт на выводе T1 |
Условие Stop запрещает/разрешает функционирование таймера/счетчика. В режимах деления используется частота тактового генератора. При использовании работы от внешнего источника предварительно должен быть установлен соответствующий бит регистра направления данных (0 - включает ножку на ввод).
ТАЙМЕР/СЧЕТЧИК 1 - TCNT1H И TCNT1L
TCNT 1 H
2Dh(4Dh) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
MSB | - | - | - | - | - | - | - | |
R\W | R\W | R\W | R\W | R\W | R\W | R\W | R\ W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TCNT1L
2Ch(4Ch) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
LSB | ||||||||
R\W | R\W | R\W | R\W | R\W | R\W | R\W | R\ W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Это 16-разрядный регистр, содержащий текущее значение таймера/счетчика 1. Чтобы чтение и запись двух байт счетчика происходило синхронно, для работы с ним используется временный регистр (TEMP). Этот вре-
менный регистр также используется при доступе к регистрам OCR1 и ICR1.
Если доступ к регистру с использованием TEMP производится и в основной программе и в обработчике прерывания, на время доступа к регистру из основной программы прерывания должны быть запрещены.
- Запись в таймер счетчик 1: При записи старшего байта в TCNT1H, записываемые данные помещаются в регистр TEMP. Затем, при записи младшего байта, он вместе с данными из TEMP переписывается в таймер/счетчик 1. Таким образом, при записи 16-разрядного значения первым должен записываться байт в TCNT1H.
- Чтение таймера/счетчика 1: При чтении младшего байта из TCNT1L, он посылается в процессор, а данные из TCNT1H переписываются в регистр TEMP, то есть одновременно читаются все 16-разрядов. При последующем чтении регистра TCNT1H, данные берутся из регистра TEMP. То есть при чтении 16-разрядного значения счетчика первым должен читаться регистр TCNT1L.
Таймер/счетчик 1 организован как суммирующий счетчик (в режиме ШИМ - суммирующий/вычитающий) с возможностью чтения и записи. Если задан источник тактовых импульсов для таймера/счетчика 1, после записи в него нового значения, счет продолжается с следующем за операцией записи
периоде тактовой частоты.
РЕГИСТР СОВПАДЕНИЯ ТАЙМЕРА/СЧЕТЧИКА 1 - OCR1H И OCR1L
OCR1H
2Bh(4Bh) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
MSB | ||||||||
R\W | R\W | R\W | R\W | R\W | R\W | R\W | R\ W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
OCR1L
3Dh(5Dh) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
LSB | ||||||||
R\W | R\W | R\W | R\W | R\W | R\W | R\W | R\ W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Регистр совпадения 16-разрядный регистр, доступный для чтения и записи. В этом регистре хранятся данные, которые непрерывно сравниваются с текущим значением таймера/счетчика 1. Действие по совпадению задается регистрами управления таймером/счетчиком 1 и регистром состояния. Поскольку регистр OCR1A является 16-разрядным, при записи нового значения в регистр, для того чтобы оба байта регистра записывались одновременно, используется временный регистр (TEMP). При записи старшего байта, данные помещаются во временный регистр, который переписывается в OCR1AH при записи младшего байта в OCR1AL. Таким образом, для записи в регистр первым должен записываться старший байт. Регистр TEMP используется при доступе к TCNT1 и ICR1, поэтому если временный регистр используется в основной программе и в прерываниях, при доступе к TEMP из основной программы прерывания должны запрещаться.
РЕГИСТР ЗАХВАТА ТАЙМЕРА/СЧЕТЧИКА 1 - ICR1H И ICR1L
ICR1H
H(45h)
ICR1L
H(44h)
Регистр захвата 16-разрядный регистр доступный только для чтения. По нарастающему или спадающему фронту (в соответствии с выбором фронта импульса захвата ICES1) сигнала на выводе ICP текущее значение таймера/счетчика 1 переписывается в регистр захвата ICR1. В это же время устанавливается флаг захвата ICF1. Поскольку регистр захвата является 16-разрядным, для чтения его значения, чтобы оба байта прочитались одновременно, используется временный регистр. При чтении младшего байта ICR1L, он посылается в ЦПУ, а старший байт регистра ICR1H переписывается во временный регистр (TEMP). При чтении старшего байта, он принимается из временного регистра. Таким образом для чтения 16-разрядного регистра первым должен читаться младший байт. Регистр TEMP используется при доступе к TCNT1 и OCR1, поэтому если временный регистр используется в основной программе и в прерываниях, при доступе к TEMP из основной программы прерывания должны запрещаться.
2019-10-11 | 242 | Обсуждений (0) |
5.00
из
|
Обсуждение в статье: РЕГИСТР B УПРАВЛЕНИЯ ТАЙМЕРОМ/СЧЕТЧИКОМ 1 - TCCR1B |
Обсуждений еще не было, будьте первым... ↓↓↓ |
Почему 1285321 студент выбрали МегаОбучалку...
Система поиска информации
Мобильная версия сайта
Удобная навигация
Нет шокирующей рекламы