Главная » Просмотр файлов » Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012)

Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221), страница 18

Файл №1264221 Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012)) 18 страницаКочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221) страница 182021-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 18)

Команда EICALL(Extended Indirect Call – расширенный косвенный вызов) позволяетвыполнять косвенный вызов подпрограмм из памяти программ размером до 4 М слов (8 Мбайт). При выполнении команд RCALL,ICALL, CALL и EICALL текущее значение программного счетчиказаносится в стек (2 байта в микроконтроллерах с 16-разрядным программным счетчиком или 3 байта в микроконтроллерах с 22-разрядным программным счетчиком).

Содержимое указателя стека(SPH:SPL) уменьшается соответственно на 2 или 3.Примеры использования команд вызова подпрограмм:RCALLsubr1subr1; относительный вызов подпрограммы; косвенный вызов подпрограммы subr2LDI R30, low(subr2)LDI R31, high(subr2)ICALL; команда icall не имеет операндовДля возврата из подпрограмм используется команда RET.

Привыполнении команды RET адрес возврата загружается из стека в программный счетчик. При этом содержимое указателя стека увеличивается на 2 или 3 в зависимости от разрядности программного счетчика(см. выше).Стек может также использоваться для сохранения содержимогоРОН на время выполнения подпрограмм.

Для сохранения в стеке иизвлечения из стека содержимого РОН служат команды PUSH и POP.Команда PUSH заносит содержимое регистра в стек по адресу, хранящемуся в указателе стека, при этом значение указателя стекауменьшается на единицу (SPH:SPL = SPH:SPL – 1). Команда POP107выполняет обратные действия: значение указателя стека увеличивается на единицу (SPH:SPL = SPH:SPL + 1); содержимое ячейки памяти по адресу, хранящемуся в указателе стека, загружается в регистр.Программы с использованием подпрограмм обычно начинаются с команды относительного перехода к основной программе, в которой прежде всего производится инициализация стека (рис.

33)..nolist.include "m8535def.inc".listRJMPграмме; отключить генерацию листинга; подключить inc-файл; включить генерацию листингаRESETPODPR:; ...RET; переход к основной про-; подпрограмма PODPR; возврат в основную программуRESET:; основная программаLDI R16, low(RAMEND)OUT SPL, R16; инициализация SPLLDI R16, high(RAMEND)OUT SPH, R16; инициализация SPH; ...RCALL; ...PODPR; вызов подпрограммы PODPRРис. 33. Пример программы с использованием подпрограммыПри работе с подпрограммами важно обеспечить передачу параметров из вызывающей программы в подпрограмму и возврат результатов выполнения подпрограммы обратно в вызывающую программу.

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

Например,можно организовать в памяти массив (таблицу) для непосредственного хранения значений передаваемых параметров или их адресов;адрес начала массива занести в РОН. Имея начальный адрес массива,вызывающая программа и подпрограмма смогут получить доступ ктребуемым параметрам.При передаче параметров через стек перед вызовом подпрограммы передаваемые параметры заносятся в стек. Следует помнить,что после выполнения команды вызова подпрограммы в стек будетдобавлен адрес возврата в вызывающую программу. Задавшись значением указателя стека в качестве базового адреса и используя косвенную адресацию памяти данных со смещением, в подпрограммеможно получить доступ к содержащимся в стеке параметрам. Например, если в основной программе перед вызовом подпрограммызанести в стек значение некоторого параметра:LDI R16, $33 ; R16 <- $33PUSHR16; сохранение содержимого регистра R16в стекето в подпрограмме можно получить к нему доступ:INR30, SPL; младший байт указателя стекаINR31, SPH; старший байт указателя стекаLDD R20, Z+3 ; загрузка числа $33 из стека в регистр R20(команда IN служит для считывания содержимого регистра вводавывода в РОН).

Аналогично можно использовать стек для хранения109адреса массива передаваемых параметров, расположенного в оперативной памяти данных.Практическая часть 1. Составить программу, использующую для вызова подпрограммы команду RCALL. Выполняемую подпрограммой функциювзять из задания лабораторной работы № 4 (по указанию преподавателя). Для передачи параметров в подпрограмму использовать регистры общего назначения.

Выполнить программу в пошаговом режиме, отслеживая изменение содержимого программного счетчика, указателя стека, а также занесение в стек адреса возврата из подпрограммы.2. Выполнить задание п. 1, используя стек для передачи параметров в подпрограмму. Проследить в симуляторе занесение передаваемых параметров в стек.3. Выполнить задание п. 2, применив для вызова подпрограммыкоманду ICALL.Содержание отчета Отчет должен содержать титульный лист с указанием номера иназвания лабораторной работы, номера группы и фамилий выполнивших работу; цель работы; листинги трансляции программ в соответствии с заданием.Контрольные вопросы 1. Каковы условия взаимодействия вызывающей программы иподпрограммы?2.

Опишите принцип организации и назначение стека.3. Каков механизм вызова подпрограмм?4. Какие команды работы с подпрограммами на ассемблеремикроконтроллеров семейства AVR вы знаете?5. Какие существуют способы обмена данными между вызывающей программой и подпрограммой?110Лабораторная работа № 6 Система прерываний Цель работы: изучение системы прерываний на примере прерывания по переполнению встроенного таймера-счетчика AVR-микроконтроллера.Теоретическая часть При работе реальной микропроцессорной системы в ней иливне ее могут произойти события, требующие немедленной реакции.Такая реакция обеспечивается процедурой прерывания (interrupt), которая состоит в том, что выполнение текущей программы приостанавливается, запоминается состояние на момент прерывания, выполняется другая программа, после чего восстанавливается сохраненноедо прерывания состояние процессора и продолжается выполнениепрерванной программы.

Сигнал, вызвавший прерывание текущейпрограммы, называется запросом на прерывание (interrupt request –IRQ); источник этого сигнала – источником прерывания; последовательность действий, выполняемая по запросу на прерывание, – обслуживанием прерывания, а выполняемая по прерыванию программа – подпрограммой обработки прерывания (interrupt handler, interrupt routine).Различают два типа источников прерывания – аппаратные ипрограммные. Источниками аппаратных прерываний служат внешние и внутренние периферийные устройства.

Запросом на прерывание от внешнего источника является активный сигнал на соответствующем выводе процессора; источник прерывания определяется повыводу, на котором появляется такой сигнал. К источникам программного прерывания относятся специальные команды прерываний(trap) – управляемые программные прерывания и особые условия(exception – исключение) – неуправляемые программные прерывания, являющиеся реакцией процессора на исключительную ситуацию, возникшую при выполнении некоторой команды (переполнение, деление на нуль и т.п.).

Запросом на прерывание от программного источника является непосредственно команда прерывания или установка бита (битов), фиксирующих возникновение особого условия.Общее количество источников аппаратных и программных прерываний может быть различным – от единиц до нескольких десятков.Процедура обслуживания прерываний по запросам от нескольких источников в различных процессорах выполняется по-разному.111Тем не менее основные принципы реализации механизма прерываний являются общими. Управление процедурой прерываний осуществляется специальными устройствами в составе аппаратного обеспечения процессора (контроллерами, схемами управления и т.п.).

Основными средствами управления прерываниями являются: векторы прерываний; приоритеты прерываний; операция маскирования прерываний; флаги прерываний.В микроконтроллерах указанные средства управления прерываниями реализуются следующим образом.Для управления прерываниями от N источников в адресномпространстве памяти программ выделяется специальная областьиз N ячеек памяти (или N блоков, состоящих из нескольких ячеек).В каждой из этих ячеек размещаются команды перехода к соответствующей подпрограмме обработки прерывания или (в случае блока изнескольких ячеек) непосредственно команды, которые необходимовыполнить по запросу на прерывание. Эти ячейки памяти (блоки) называются векторами прерываний (или просто векторами), адресячейки (первой ячейки каждого блока) – адресом вектора прерывания.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее