Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Прерывания микроконтроллера HC908GP32. Маскирование прерываний. Распознавание и обработка прерываний

Читайте также:
  1. Алюминий и его сплавы. Классификация алюминиевых сплавов. Деформируемые алюминиевые сплавы. Дуралюмины, термическая обработка дуралюминов. Примеры, маркировка.
  2. Вопрос №12 хлорирование, озонирование, ультрафиолетовая и термическая обработка.
  3. Гипс. Обработка гипса, свойства. Применение. Способы изменения скорости затвердевания и прочности гипса. Хранение гипса
  4. Жаропрочные А стали. Термообработка аустенитных сталей.
  5. Защита персональных данных работника. Понятие, обработка, хранение и использование персональных данных.
  6. ИЗМЕРЕНИЯ И ОБРАБОТКА РЕЗУЛЬТАТОВ.
  7. Информационное обеспечение экономического анализа. Систематизация и обработка экономической информации
  8. ЛАБОРАТОРНАЯ РАБОТА 13. УКАЗАТЕЛИ. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ. ОБРАБОТКА ДВУХСВЯЗНЫХ СПИСКОВ
  9. Лекция 3. Результаты измерений и их погрешности. Обработка результатов прямых измерений
  10. Металлобработка

15. Распознавание и обработка прерывания по переполнению таймера микроконтроллера HC908GP32 P

ОБРАБОТКА ПРЕРЫВАНИЙ

Прерывания изменяют текущую последовательность выполнения команд с целью об­служивания внешнего или внутреннего события, вызывавшего прерывание. Прерывание в отличие от сброса не останавливает выполнение текущей инструкции. При поступлении запроса на прерывание МК завершает выполнение текущей команды, а затем реализует механизм перехода к подпрограмме прерывания:

• регистры центрального процессора автоматически сохраняются в стеке в следующем порядке: регистр признаков CCR, аккумулятор АСС, младший байт индексного регис­тра X, старший байт счетчика адреса РСН, младший байт счетчика адреса PCL; по завершении прерывания инструкция возврата из прерывания RTI восстанавливает в обратном порядке все регистры центрального процессора для возобновления вы­полнения фоновой программы;

• бит глобальной маски прерывания I в регистре признаков CCR устанавливается в «1», запрещая обслуживание любых других запросов на прерывание до тех пор, пока не
будет завершена текущая подпрограмма прерывания;

• счетчик адреса C загружается адресом начала подпрограммы прерывания, который называют вектором прерывания.

В МК семейства НС08 реализован традиционный для всех МК фирмы «Motorola» ме­ханизм загрузки векторов прерывания. В адресном пространстве памяти программ МК выделена специальная область, которая носит название сегмента векторов прерыва­ния. Каждому источнику запросов на прерывание в этой области отведено по два байта памяти с фиксированными адресами. Пользователь на этапе программирования МК за­носит в эти ячейки памяти адрес начала подпрограммы прерывания. При переходе к выполнению подпрограммы прерывания этот адрес автоматически загружается в счет­чик адреса центрального процессора. В рассматриваемом сегменте памяти размещает­ся также вектор сброса.

Аппаратные средства прерывания МК семейства НС08 имеют следующие особенности:

• выполнение команды возврата из прерывания RTI автоматически разрешает преры­вания;

• выполнение команды возврата из прерывания RTI не блокирует прерывания на пе­риод выполнения следующей команды; вход в новую подпрограмму возможен сразу после выполнения команды RTI.

Дело в том, что при входе в подпрограмму прерывания бит глобальной маски преры­вания I обязательно равен 0. Иначе прерывания были бы запрещены и говорить о под­программе прерывания не имело бы смысла. Содержимое регистра признаков, в кото­ром располагается маска I, сохраняется в стеке при входе в подпрограмму прерывания. Следовательно, при восстановлении регистра признаков из стека по команде RTI бит глобальной маски прерывания установится в «0», и прерывания будут разрешены.

 

Все источники прерываний МК семейства НС08 можно разделить на три группы:

1) немаскируемое программное прерывание по команде SWI;

2) маскируемые внешние прерывания по входу IRQ и по некоторому числу линий
портов ввода/вывода, которые принадлежат модулю сканирования клавиатуры КВI08;

3) маскируемые прерывания от периферийных модулей.

Механизм программного прерывания позволяет обратиться к какой-либо подпрограмме прерывания по ходу выполнения прикладной программы и воспользоваться подпрограм­мой прерывания как обычной подпрограммой. Наличие в системе команд инструкции программного прерывания SWI предоставляет такую возможность. Эта команда автома­тически загружает в стек регистры CCR, АСС, X и увеличенное на единицу содержимое счетчика команд PC, а затем осуществляет переход по адресу, который указан в ячейках памяти $FFFC и $FFFD сегмента векторов прерывания. Этот адрес может быть началь­ным адресом подпрограммы прерывания или же находиться внутри нее. При выходе из подпрограммы прерывания команда RTI восстановит содержимое регистров централь­ного процессора и МК продолжит выполнение прикладной программы с команды, кото­рая была следующей за командой SWI. Таким образом, программисту предоставляется возможность обращения в произвольный момент времени к фрагменту подпрограммы прерывания, который начинается с произвольно выбранной инструкции внутри подпрог­раммы прерывания, но заканчивается обязательно командой RTI.

Число линий МК MC68HC908GP32 для приема внешних запросов на прерывания ва-рьируется от одной линии (вход IRQ) до 9 линий. Обслуживание запросов по входу IRQ осуществляет модуль внешних прерываний IRQ08. Активный уровень сигнала запроса на входе IRQ - низкий логический, длительность сигнала запроса должна составлять не менее t,UH=50 не. Дополнительные входы внешних запросов могут быть получены путем.соответствующей инициализации модуля сканирования клавиатуры KBI08, который по­зволяет настроить некоторое число линий ввода/вывода МК для приема внешних запро­сов на прерывание.

Все прерывания, кроме программного по команде SWI, могут быть разрешены или запрещены сбросом или установкой глобальной маски прерывания I в регистре при­знаков CCR:

cli; команда сбрасывает в «О» бит I, т. е. разрешает прерывания.

sei; команда устанавливает бит I в «1», т. е. запрещает прерывания.

Кроме того, каждому источнику прерывания, за исключением программного, постав­лена в соответствие индивидуальная маска прерываний, которая расположена в одном из регистров специальных функций соответствующего периферийного модуля.

Подсистема прерываний МК семейства НС08 имеет жесткое распределение приори­тетов, которое не может быть скорректировано программными настройками

 

 




Дата добавления: 2015-01-30; просмотров: 113 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав