|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[26] 4 тактовых цикла. В течение этих 4 циклов состояние счетчика команд (2 байта) извлекается из стека и указатель стека инкрементируется на 2. Когда AVR выходит из прерывания, он всегда возвращается в основную программу и выполняет еще одну команду, прежде, чем начать обслуживание какого либо отложенного прерывания. Отметим, что регистр статуса SREG не обрабатывается аппаратными средствами AVR, ни для прерываний, ни для подпрограмм. При обработке подпрограмм прерываний, требующих сохранения в SREG, запись должна выполняться программными средствами пользователя. Для прерываний, запускаемых статическими событиями (например совпадение содержимого регистра сравнения 1A с состоянием таймера/счетчика1) флаг прерывания устанавливается в момент наступления события. Если флаг очищен, но условия возникновения прерывания продолжают существовать, флаг не будет устанавливаться до тех пор, пока это событие не наступит вновь. Режимы энергосбережения (Sleep Modes) Для перевода в любой из трех режимов энергосбережения бит SE в регистре MCUCR должен быть установлен в состояние1. Биты SM1 и SM0 регистра MCUCR определяют какой из режимов Idle, Power Down или Power Save будет запущен командой SLEEP. При возникновении разрешенного прерывания во время нахождения MCU в режиме энергосбережения, MCU активируется, выполняет подпрограмму обработки прерывания и продолжает работу до следующей команды SLEEP. Если во время режима энергосбережения происходит сброс, MCU активируется и начинает работу по вектору сброса. Содержимое регистрового файла, SRAM и памяти I/O в процессе активации не изменяется. В Таблице 4 представлен выбор режима энергосбережения. Отметим, что если для возврата из режима энергосбережения Power Down или Power Save, используется запуск прерывания по уровню, то низкий уровень должен удерживаться несколько дольше, чем время задержки сброса t TOUT, иначе микроконтроллер не активируется. РЕЖИМ Idle Если биты SM1/SM0 находятся в состоянии 00 команда SLEEP переводит MCU в режим Idle, останавливая CPU но оставляя активными таймеры/счетчики, сторожевой таймер и систему прерываний. Это обеспечивает активацию MCU внешними прерываниями и такими внутренними прерываниями, как переполнение таймера и завершение приема UART. Если активация по аналоговому компаратору не требуется, то аналоговый компаратор может быть отключен установкой бита ACD в регистре управления и статуса аналогового компаратора ACSR. Это позволит дополнительно снизить потребление в Idle режиме. При активации MCU из Idle режима CPU начинает выполнять программу незамедлительно. РЕЖИМ Power Down При установке битов SM1/SM0 в состояние 10 команда SLEEP переводит MCU в режим Power Down. В этом режиме останавливается внешний генератор. Пользователь может разрешить работу сторожевого таймера. Если сторожевой таймер разрешен, то активация MCU произойдет по завершении установленного в сторожевом таймере периода времени. Если внешний источник тактового сигнала подключен к выводу XTAL1, то активация MCU из режима Power Down может происходить без задержки, обычно необходимой для стабилизации XTAL генератора. Режим такой активации разрешается программированием перемычек SUT0/SUT1 в Flash памяти. См. раздел Режим параллельного программирования. РЕЖИМ Power Save При установке битов SM1/SM0 в состояние 11 команда SLEEP переводит MCU в режим Power Save. Этот режим, за одним исключением, аналогичен режиму Power Down. Если таймер/счетчикО тактируется асинхронно, т.е. бит AS0 в регистре ASSR установлен, таймер/счетчикО будет работать в режиме Power Save. MCU будет активироваться прерываниями по переполнению или совпадению выхода таймера/счетчика0. Таймеры/счетчики Микроконтроллеры ATmega603/103 оснащены тремя таймерами/счетчиками общего назначения - двумя 8-разрядными и одним 16-разрядным. Таймер/счетчик0, в дополнение к обычному режиму, может тактироваться асинхронно от внешнего генератора. Этот генератор оптимизирован под использование кварцевого кристалла на частоту 32768 кГц, что позволяет использовать таймер/счетчик0 как часы реального времени (Real Time Clock - RTC). Таймер/счетчик0 оснащен своим собственным предварительным делителем. Таймеры/счетчики 1 и 2 используют выходы ступеней деления общего 10-разрядного предварительного делителя. Эти два таймера/счетчика можно использовать как таймеры с встроенной временной базой или как счетчики, переключаемые по состоянию на внешнем выводе. Предварительные делители таймеров/счетчиков CK *у 10-разрядный предварительный делитель EXT1 EXT2 "О СО счо -о- CS20 CS21 CS22 Л7 CS10-Х -А/ CS11 -» CS12- Тактовый сигнал таймера/счетчика2 Тактовый сигнал таймера/счетчика! Рис. 30 Предварительный делитель таймера/счетчика1 и таймера/счетчика2 Предварительный делитель таймеров/счетчиков 1и 2 содержит четыре ступени деления: CK/8, CK/64, CK/256 и CK/1024, где CK входной тактовый сигнал. Кроме того, в качестве источников тактовых сигналов могут быть использованы сигналы от внешних источников, тактовый сигнал CK и нулевой тактовый сигнал (stop). 0 CK TCK1 AS0 TCK0 (>10-разрядный предварительный делитель СОCN C0 4D оw \£оо KCK K TCKTC KTC CS00 CS01 CS02 5 со сч с0 K CT 4D Ю СЧ О K TC Ш1 0 о" K TC Тактовый сигнал таймера/счетчика 0 Рис 31 Предварительный делитель таймера/счетчика0 Тактовый сигнал таймера/счетчика0 обозначен TCK0. Этот тактовый сигнал по умолчанию подключен к основному тактовому сигналу системы CK. При установке бита AS0 в регистре ASSR таймер/счетчик0 будет асинхронно тактироваться сигналом с вывода TOSC1, что позволяет использовать таймер/счетчик0 в качестве часов реального времени (RTC). Генератор оптимизирован под использование кварцевого кристалла с частотой 32768 кГц, подсоединяемого между выводами TOSC1 и TOSC2. 8-разрядные таймеры/счетчики T/C0 и T/C2 8-разрядный таймер/счетчик0 получает тактовый сигнал или непосредственно от TCK0 или после прохождения его через предварительный делитель. 8-разрядный таймер/счетчик2 получает тактовый сигнал непосредственно от CK, после прохождения его через предварительный делитель или от внешнего вывода. Оба таймера/счетчика могут быть остановлены, как это показано в описании регистров управления таймерами/счетчиками TCCR0 и TCCR2. В регистре флагов прерывания таймеров/счетчиков TIFR хранятся различные флаги состояния регистров (переполнения, совпадения при сравнении и захвата события). Установки управляющих сигналов хранятся в регистрах управления таймерами/ счетчиками TCCR0 и TCCR2. Установка разрешения/запрещения прерываний производится в регистре масок прерываний таймеров/счетчиков TIMSK. При тактировании таймера/счетчика2 внешним тактовым сигналом этот сигнал синхронизируется с тактовой частотой CPU. Для обеспечения правильной синхронизации внешнего сигнала необходимо, чтобы минимальное время между двумя входящими тактовыми циклами было не менее одного цикла внутреннего тактового сигнала CPU. Внешний тактовый сигнал синхронизируется нарастающим фронтом внутреннего тактового сигнала CPU. Точность и разрешение 8-разрядных таймеров/счетчиков растет с уменьшением коэффициента предварительного деления. Аналогичным образом высокий коэффициент предварительного деления удобно использовать при реализации функций с низким быстродействием или точной синхронизации редко происходящих действий. |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||