Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Работа с подпрограммами



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

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

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

В модели 1200 имеется трехуровневый аппаратный стек. Когда подпрограмма вызывается из другой подпрограммы, содержимое PC помещается на вершину стека, проталкивая (push) предыдущее число на более низкий уровень. Последующая команда возврата, как обычно, загрузит число с вершины стека в счетчик команд. Наличие в стеке всего трех уровней означает, что можно сделать не более трех вложенных друг в друга вызовов подпрограмм. Это ограничение связано с тем, что при четвертом вызове подпрограммы и соответственно при занесении в стек нового значения первое число из трех, ранее занесенных в стек, теряется.

Команда вызова подпрограмм имеет вид:





Дата публикования: 2015-02-03; Прочитано: 269 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...