КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Обращение к 16-битным регистрам.Каждый 16-битный регистр таймеров/счетчиков физически размещается в двух 8-битных регистрах, Соответственно, для обращения к ним требуется выполнить по две операции чтения или записи. Для того чтобы запись или чтение обоих байтов содержимого 16-битного регистра происходило одновременно, в составе каждого таймера/счетчика имеется специальный 8-битный регистр TEMP, предназначенный для хранения старшего байта значения (этот регистр используется только процессором и программно недоступен). Для выполнения цикла записи 16-битного регистра первым должен быть загружен старший байт значения, который помещается в регистр TEMP. При последующей записи младшего байта он объединяется с содержимым регистра TEMP, и оба байта одновременно (в одном и том же тахте) записываются в 16-битныЙ регистр. Если требуется изменить несколько 16-битных регистров таймера/счетчика, а старшие байты всех записываемых значений одинаковы,то загрузку старшего байта достаточно выполнить только один раз. Для выполнения цикла чтения 16-битного регистра первым должен быть прочитан младший байт. При его чтении содержимое старшего байта помещается в регистр TEMP. При последующем чтении старшего байта возвращается значение, сохраненное в регистре TEMP. Исключение составляют только регистры сравнения ОСnА/В, при чтении которых регистр TEMP не задействуется. При выполнении цикла обращения к 16-битному регистру таймера/счетчика прерывания должны быть запрещены. В противном случив, если прерывание произойдет между двумя командами обращения к 16-битному регистру, а в подпрограмме обработки этого прерывания тоже будет произведено обращение к какому-либо из 16-битных регистров того же таймера/счетчика, содержимое регистра TEMP будет изменено. Как следствие, результат обращения к 16-битному регистру в основной программе будет неверным. Управление тактовым сигналом Формирование тактового сигнала 16-битных таймеров/счетчиков clkT1 (clkT3) осуществляется блоком предделителя, который был рассмотрен выше. В качестве тактового сигнала clkT1 (clkT3) таймеров/счетчиков может использоваться: · системный тактовый сигнал (clkT1(T3) =clkI/O ); · масштабированный системный тактовый сигнал (clkT1(T3) =clkI/O /n); · внешний сигнал, поступающий на вход Т1 (Т3) микроконтроллера (clkTO(T2) =clkI/O /ext); Исключение составляет лишь таймер/счётчик T3 модели Atmega 162, который не может работать от внешнего тактового сигнала Выбор источника тактового сигнала, а также запуск и остановка таймеров/счетчиков осуществляются с помощью битов CS02...CSOO (CS21..CS20) регистров управления таймером TCCRnB Табл.11 Таблица 11. Выбор источника тактового сигнала таймеров/счетчиков ТО и Т2.
Режимы работы Режим работы таймера/счетчика Т1 (Т3) Определяется состоянием битов WGMn3:WGMn2 регистра ТССRnB совместно с битами WGMn1:WGMn0 регистра TCCRnA . Зависимость режима работы таймеров/счетчиков от состояния этих битов показана в Табл.12. [ 1, с.363-373 ] Таблица 12. Режимs работы таймеров/счётчиков( n=1,3)
|