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

Запуск эмулятора



Программа " AVR Studio " позволяет запустить программу в реальном времени и в пошаговом режиме. В меню отладки «Debug» находятся все варианты запуска программы, например:

Run, запуск программы в реальном времени, результат будет виден только после остановки программы;

Break, останов программы, после просмотра исполнение программы можно продолжить;

Reset, сброс программы установка счетчика команд на начало программы;

Step Over, пошаговое исполнение, при этом программа останавливается после каждой команды, стрелка указывает на текущую команду;

AutoStep, запуск программы на непрерывное исполнение с возможностью просмотра текущих шагов исполнения.

При пошаговом режиме можно наблюдать за состоянием регистров после исполнения каждой команды, проверяя при этом правильность операций. Запустив программу кнопкой " AutoStep ", получим ее непрерывное исполнение и индикацию регистров во времени. Желтая стрелка в окне дизассемблера показывает текущую исполняемую команду. Приостановив исполнение программы кнопкой " Break ", можно изменить значения регистров ввода/вывода, т.е. задать разные значения входных сигналов. И далее снова запустив программу кнопкой " AutoStep ", просмотреть реакцию микроконтроллера на эти воздействия (рисунок 14).

Рисунок 14 Запуск эмулятора на исполнение

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

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

; название программы, необходимые пояснения;

. includem8535def.inc ”; файл описания ATmega8535

. include «имя_файла1.расширение; включение дополнительных файлов

; объявление глобальных констант

. equ имя1 = xxxx;

. equ имя2 = nnnn

; объявление глобальных регистровых переменных

. def имя1= регистр

. def имя2= регистр

; указание сегмент данных

. dseg

. org xxxx; адрес первого зарезервированного байта

label1:. BYTE 1; резервировать 1 байт под переменную label1
label2:. BYTE m; резервировать m байт под переменную label2

; сегмент EEPROM (ЭСППЗУ)

. eseg

. org xxxx; адрес первого зарезервированного байта

. db выражение1,выражение2,…; записать список байтов в EEPROM.

. dw выражение1,выражение2,…; записать список слов в EEPROM.

; сегмент кодов

. cseg

. org $0000; адрес начала программы в программной памяти

; вектора прерываний (если они используются)

rjmp reset;прерывание по сбросу

. org $0002

rjmp INT0;обработчик прерывания INT0

. org $0004

rjmp INT1;обработчик прерывания INT1

. org adrINTx;адрес следующего обработчика прерываний

rjmp INTx;обработчик прерывания x

…….;далее располагаются обработчики остальных;прерываний

; начало основной программы

main: <команда> xxxx

… …

; подпрограмма 1

subr1: <команда> xxxx

…… ………. ……

ret

; программы обработчиков прерываний

INT0: <команда> xxxx

…… ………. ……

reti

………………………

; конец программы не обозначается


Лабораторная работа №1





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



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