Моделирование устройства

 

 

‛стрелка“ (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) и содержимое порта, отображающего счетчик секунд.