Моделирование устройства
‛стрелка“ (F12) – запуск симуляции
‛двойная стрелка“ (F11) – пошаговая (по командам) симуляция
‛две палки“ (pause) – пауза
‛прямоугольник“ (Esc) – стоп
Или буквой «Р»
Выберем компоненты:
И соберем вот такую схему:
Но схема получилась «захламленной», и переделаем ее в :
Далее выделяем на схемеконтроллер и открываем его свойства:
И в разделе Program File указываем ему файл-прошивку (hex)
Закрываем. Включаем симуляцию (F12)
Часы запустились.
Стоит напомнить, что на схеме:
"Красный" - логическая "1"
"Синий" - логический "0"
"Серый" – неопределенно -высоко-импедансное "Z - состояние"
"Желтый" - конфликт на линии.
Остановим проект. Нажмем правой кнопкой мыши на процессоре.Откроется:
В открывшемся меню в пункте AVR нам доступны:
CPURegisters-Ul – регистры общего назначенияконтроллера.
EPROM Memory - Ul – память eeprom
Program Memory - Ul – память программ (flash)
DataMemory-Ul – содержимое ОЗУ
I/ORegisters - Ul– содержимое регистров ввода-вывода (вмикроконтроллерах AVRрегистры ввода-вывода – управляющие регистры перифериеймикроконтроллера)
Source Code – Ul – текст программы
CPURegisters:
EPROM Memory:
Program Memory:
Data Memory:
ОЗУ контроллера, в вершине (по адресу) можно увидетьсодержимое стека
I/O Registers:
SourceCode:
Выше в этомменю могут быть полезен пункт ConfigureDiagnostics...(жук)
Насмотри егоподробнее.
При нажатии нанего откроется панель:
Из нее выбираемATMEGA32(Ul).Панель примет вид:
В открывшемся«меню» появятся периферийные модули выбранного микроконтроллера. При выделении,им можно будет задавать «уровень отладки»:
Disabled – отключено, программа не будет реагировать насобытия в модуле
WarningsOnlу – только предупреждения, при этом прикаком-то событии в модуле будет записываться сообщение (в SIMULATION LOG).
FullTrace - при каком-то событии в модуле будетзаписываться предупреждение (в SIMULATION LOG), но программа будет идти дальше.
Debug – при любом событии в указанном модуле,программа будет останавливаться.
Пример: будемотслеживать прерывания в МК. Выбираем «Interrupt Events», ставим уровень «Debug»:
Приостанавливаемвыполнение программы. Открываем SIMULATION LOG. Там показаны события – вызовы прерываний. Такие вещикрайне необходимы при отладке в сложных проектах. Там же есть «ссылки» на«точки» в программе, где эти события были вызваны. К примеру у нас всепрерывания были вызваны из адреса 0х0086. Нажав на значение «ссылку», можнопопасть в участок программы, откуда произошел вызов.
Но этиокна будут открыты, если проект остановлен. Для отображения информации осостоянии регистров ввода-вывода, предназначен Watch Window. Открывается: меню => Debug => Watch Window. Появитсяокно:
При нажатии правой кнопки,выйдет меню:
Для примера, занесем в Watch Window содержимое счетчика секунд наших часов (r17) и содержимое порта, отображающего счетчик секунд.