рефераты

рефераты

 
 
рефераты рефераты

Меню

Реферат: AVR микроконтроллер AT90S2333 фирмы Atmel рефераты

Это 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

25h(45h)

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

ICR1L

  

24h(44h)

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-разрядный регистр доступный только для чтения. По нарастающему или спадающему фронту (в соответствии с выбором фронта импульса захвата ICES1) сигнала на выводе ICP текущее значение таймера/счетчика 1 переписывается в регистр захвата ICR1. В это же время устанавливается флаг захвата ICF1. Поскольку регистр захвата является 16-разрядным, для чтения его значения, чтобы оба байта прочитались одновременно, используется вре­менный регистр. При чтении младшего байта ICR1L, он посылается в ЦПУ, а старший байт регистра ICR1H переписывается во временный регистр (TEMP). При чтении старшего байта, он принимается из временного регис­тра. Таким образом для чтения 16-разрядного регистра первым должен чи­таться младший байт. Регистр TEMP используется при доступе к TCNT1 и OCR1, поэтому ес­ли временный регистр используется в основной программе и в прерывани­ях, при доступе к TEMP из основной программы прерывания должны запрещаться.

ТАЙМЕР/СЧЕТЧИК 1 В РЕЖИМЕ ШИМ

При выборе режима широтно-импульсной модуляции (ШИМ), тай­мер/счетчик 1 и регистр совпадения OCR1A формируют 8, 9 или 10-разряд­ный непрерывный свободный от "дрожания" и правильный по фазе сигнал, выводимый на ножку PB3(OC1). Таймер/счетчик 1 работает как реверсивный счетчик считающий от 0 до конечного значения (см. табл.10). При дости­жении конечного значения счетчик начинает считать в обратную сторону до нуля, после чего рабочий цикл повторяется. Когда значение счетчика совпадает с 8, 9 или 10-ю младшими битами регистра OCR1A, вывод PD1(OC1) устанавливается или сбрасывается в соответствии с установками бит COM1A1 и COM1A0 в регистре TCCR1 (см. табл.11).

Таблица 12. Конечное значение таймера и частота ШИМ.

Разрешение ШИМ Конечное значение таймера Частота ШИМ
8 бит 00FFh (255) Ftc1/510
9 бит 01FFh (511) Ftc1/1022
10 бит 03FFh (1023) Ftc1/2046

Таблица 13. Установка режима совпадения при работе ШИМ

COM1A1 COM1A0 Влияние на вывод OC1

0

0

не подключен

0

1

не подключен

1

0

очищается при совпадении, для возрастания  счетчика и сбрасывается для уменьшения (неинвертирующий ШИМ)

1

1

очищается при совпадении, для уменьшения счетчика и сбрасывается для возрастания (инвертирующий ШИМ)

В режиме ШИМ, при записи в регистр OCR1A, 10 младших бит переда­ются во временный регистр и переписываются только при достижении тай­мером/счетчиком конечного значения. При этом устраняется появление не­симметричных импульсов (дрожания), которые неизбежны при асинхронной записи OCR1A. Во промежуток времени между записью во временный регистр и пере­писыванием его в OCR1, при обращении к OCR1 читается содержимое вре­менного регистра. Если OCR1A содержит значение 0000h или конечное значение (TOP), вывод OC1 остается в том состоянии, которое определяется установками COM1A1 и COM1A0. Это показано в табл. 14.

Таблица 14. Выход ШИМ для OCR=0000h или TOP

COM1A1 COM1A0 OCR1A вывод OC1

1

1

0

0

0000h

TOP

низкий

высокий

1

1

1

1

0000h

TOP

высокий

низкий

В режиме ШИМ флаг переполнения таймера 1 (TOV1) устанавливается когда счетчик изменяет направление счета в точке 0000h. Прерывание по переполнению таймера 1 работает как при нормальном режиме работы таймера/счетчика, т.е. оно выполняется, если установлен флаг TOV1 и разрешены соответствующие прерывания. То же самое касается флага сов­падения и прерывания по совпадению.

СТОРОЖЕВОЙ ТАЙМЕР

Сторожевой таймер работает от отдельного встроенного генератора работающего на частоте 1 MHz (это типовое значение частоты для питания 5В). Управляя предварительным делителем сторожевого таймера можно за­давать интервал сброса таймера от 16 до 2048 mS. Команда WDR сбрасыва­ет сторожевой таймер. Для работы сторожевого таймера можно выбрать од­но из 8-ми значений частоты, что позволяет в широких пределах изменять время между исполнением команды WDR и сбросом процессора. При отработ­ке периода работы сторожевого таймера, если не поступила команда WDR, AT90S2313 сбрасывается, выполнение программы продолжается с вектора сброса.

Для предотвращения нежелательного отключения сторожевого таймера, для его запрещения должна выполняться определенная последовательность, которая описана при рассмотрении регистра WDTCR.

РЕГИСТР УПРАВЛЕНИЯ СТОРОЖЕВЫМ ТАЙМЕРОМ – WDTCR

WDTCR

  

21h(41h)

7 6 5 4 3 2 1 0

WDTOE

WDE

WDP2

WDP1

WDP0

R

R

R

R

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

Биты 7..5 - зарезервированы. В AT90S2333/4433 эти биты зарезервиро­ваны и всегда читаются как 0.

Бит 4 - WDTOE - разрешение выключения сторожевого таймера. При очис­тке бита WDE этот бит должен быть установлен (1). Иначе, работа сторо­жевого таймера не прекращается. Через четыре такта после установки этого бита, он аппаратно сбрасывается.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17