Теоретические сведения. Симулятор VMLab предлагает разработчикам программ для микроконтроллеров AVR широкие возможности по отладке программы
Симулятор VMLab предлагает разработчикам программ для микроконтроллеров AVR широкие возможности по отладке программы, симуляции работы контроллера и его периферии. Проект в VMLab представляет собой текстовый файл с расширением.prj, который может быть создан в любом текстовом редакторе. Этот файл содержит описание типа и частоты работы контроллера, элементов подключаемых к контроллеру, а также написанные на специальном языке команды симулятору.
В появившемся окне нужно: 1) нажать кнопку Enter name/browse /create directory, выбрать папку, в которой будет сохранен файл проекта (желательно его сохранить в одной папке с проектом программы для МК), и ввести имя файла, например vmlab; 2) выбрать микроконтроллер в списке Select micro. 3) нажать кнопку Browse+add выбрать файл программы с расширением .С, имеющий в конце имени символы подчеркивания, например «1__.с». 4) в поле Target hex file нужно ввести имя файла-прошивки, созданного в Code Vision AVR C Compiler, например 1.hex; 5) установить переключатель Any 3rd party high level language generating COFF и ввести в поле COFF file name имя файла с расширением.cof, сгенерированного в среде Code Vision AVR C Compiler для симуляторов. В результате этих манипуляций окно примет вид, приведенный на рисунке 1. Основными окнами симулятор VMLab являются: окно редактора проекта, окно, отображающее текст исходной программы на языке С, панель управления (Control panel), виртуальный осциллограф (Scope) и окно просмотра значений переменных (Watch). Включение отображения этих и других нужных окон можно осуществить в меню View.
Файл нового проекта содержит следующие строки: ; ************************************************************ ; PROJECT: ; AUTHOR: ; ************************************************************ ; Micro + software running ; ------------------------------------------------------------ .MICRO " ATmega8" .TOOLCHAIN " GENERIC" .TARGET " 1.hex" .COFF " 1.cof" .SOURCE " 1__.c" .TRACE; Activate micro trace ; Following lines are optional; if not included ; exactly these values are taken by default ; ------------------------------------------------------------ .POWER VDD=5 VSS=0; Power nodes .CLOCK 1meg; Micro clock .STORE 250m; Trace (micro+signals) storage time ; Micro nodes: RESET, AREF, PB0-PB7, PC0-PC6, PD0-PD7, ACO, TIM1OVF, ADC6, ADC7 ; Define here the hardware around the micro ; ------------------------------------------------------------ Обратите внимание на установку частоты работы МК «.CLOCK 1meg». После создания нового проекта, необходимо описать элементы схемы, подключаемые к МК, которые принципиально существенны для симуляции. Для ускорения процесса описания симулятор содержит шаблоны типичных конструкций в меню Components. Предположим, что к выводам РВ0 и РВ1 контроллера через резисторы сопротивлением 470 Ом подключены светодиоды, как показано на рисунке 2. Рисунок 2 – Схема подключения светодиодов Тогда в файл проекта необходимо добавить следующие строки: D1 VDD node1 R1 PB0 node1 470
D2 VDD node2 R2 PB1 node2 470 Здесь node1 и node2 обозначают точки соединения светодиодов и резисторов. Их имена выбраны произвольно. После этого светодиоды D1 и D2 панели управления окажутся подключенными к указанным выводам контроллера. Важно, что при таком включении, если на выводах МК будет высокий уровень сигнала, светодиоды светиться не будут, а если низкий – будут. Допустим, что к выводу PD1 МК подключен ключ, соединенный с землей (здесь - VSS). Опишем подключение кнопки К1 к выводу PD1: K1 PD1 VSS LATCHED Здесь параметр LATCHED задает один из трех режимов работы кнопки: normal – ключ замкнут до тех пор, пока нажата кнопка, latched – при нажатии кнопки состояние ключа изменяется на противоположное и monostable(timeval) – ключ замкнут в течение заданного промежутка времени. Отслеживать уровни сигналов на выводах контроллера с помощью светодиодов удобно как при работе реальной схемы, так и в симуляторе, однако, очень часто в процессе отладки очень удобно использовать виртуальный осциллограф. Для включения отображения уровней напряжения на интересующих ножках контроллера в файл проекта нужно добавить: .PLOT V(PB0) V(PB1) V(PD1) Окно осциллографа позволяет включить режим отображения всего сигнала, задать масштабы отображения по осям, установить 2 временных курсора и вычислить временное расстояние между ними (cursors delta time), что может быть очень полезно при отладке программы. После того как описание схемы и настройка проекта закончена нужно выбрать Project-Re-build all (Shift+F9). Теперь можно начинать симуляцию. Для симуляции используется кнопка Начать-продолжить Очень удобно работать со средой Code Vision AVR C Compiler и VMLab одновременно. В Code Vision AVR C Compiler можно оперативно внести изменения в исходный текст программы и откомпилировать её, после чего в VMLab можно перекомпилировать проект (Project-Re-build all) и произвести симуляцию работы контроллера уже с новой программой.
|