Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

В микроконтроллерах расширенного семейства каждому источнику прерывания сопоставлено три бита[190]. Так, у модуля АЦП имеется флаг прерывания ADIF (PIR1 [6]) для индикации запроса прерывания, бит маски ADIE (Р1Е[6]) для разрешения прерывания от этого источника, а также бит приоритета ADIP (IPR1 [6]), определяющий приоритет прерывания от данного источника: ADIP = 1 — высокий приоритет (состояние после сброса по питанию), ADIP = 0 — низкий приоритет.

При возникновении запроса прерывания от источника с низким приоритетом, происходит переход по вектору низкоприоритетных прерываний, расположенному по адресу h’018’, и сбрасывается бит GIEL (глобальное разрешение прерываний с низким приоритетом) в INTCON[6]. В результате обработка любого другого прерывания с низким приоритетом будет невозможна до завершения обработки текущего прерывания. Однако если во время обработки низкоприоритетного прерывания будет получен запрос прерывания от источника с высоким приоритетом, то выполнение текущего обработчика приостановится и процессор перейдет по вектору высокоприоритетного прерывания, расположенному по адресу h’008’ (что соответствует адресу слова h’004’ вектора прерывания предыдущих семейств). Одновременно с этим сбрасывается бит GIEH (глобальное разрешение прерываний с высоким приоритетом) в INTCON[7], запрещая все прерывания независимо от их приоритетов.

При переходе к соответствующему вектору прерывания содержимое счетчика команд помещается на вершину стека, как и в семействе среднего уровня. Помимо этого, в трех скрытых регистрах, называемых иногда быстрым стеком (fast stack), сохраняется содержимое рабочего регистра, регистра STATUS и регистра BSL. Для восстановления сохраненного контекста одновременно со счетчиком команд необходимо, чтобы определенный бит слова команды retfie был установлен в 1. Для этого команда retfie записывается с параметром: retfie 1 или, более удобочитаемо, retfie FAST. Если же команда будет записана без параметров, то этот бит окажется сброшен и при возврате из обработчика прерывания будет восстановлен только счетчик команд.

Необходимо очень аккуратно использовать этот механизм быстрого сохранения/восстановления контекста, поскольку в быстром стеке может храниться только одна копия этих системных регистров. Если запрос прерывания с высоким приоритетом прервет выполнение обработчика прерывания с низким приоритетом, то содержимое быстрого стека будет перезаписано новыми значениями! Поэтому при наличии в программе прерываний с разными приоритетами команда retfie FAST должна использоваться только в обработчиках прерываний с высоким приоритетом. Если же прерывания в программе вообще не используются, то быстрый стек можно использовать для сохранения контекста при вызове обычных подпрограмм. Так, по команде call FAST происходит вызов подпрограммы с одновременным сохранением контекста, а по команде return FAST — возврат из подпрограммы с восстановлением контекста.

В трех регистрах INTCON хранятся флаги прерываний, биты маски и приоритета для прерывания от Таймера 0, прерывания по изменению состояния порта В и трех внешних прерываний. Управление остальными прерываниями осуществляется с помощью регистров PIR1:2, РIЕ1:2 и IRP1:2. При включении питания схема обработки прерываний работает так же, как и неприоритетная схема среднего семейства, т. е. состояние битов приоритета игнорируется. Кроме того, для разрешения работы приоритетной системы прерываний должен быть установлен в 1 бит IPEN регистра управления сбросом RCON (RCON[7]).

Система команд

В Табл. 16.1 перечислены все 75 команд, поддерживаемые ядром PIC18. Сравнивая эту таблицу с приведенной в Приложении Г, можно заметить, что сохранились все предыдущие команды, за исключением команды clrw. Эта команда стала избыточной, поскольку рабочий регистр теперь может обрабатываться как обыкновенный регистр данных и, соответственно, его сброс может быть осуществлен командой clrf WREG. Также была расширена функциональность ряда старых команд, например, в части воздействия на флаги отрицательного значения (N) и переполнения (OV). У нескольких команд появились расширенные варианты; например, команда addwfс прибавляет содержимое рабочего регистра к указанному регистру данных с учетом переноса (см. Программу 16.2).

Условные обозначения:

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника