AVR123:Введение — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Шаг 4. Как изменить программу?)
(Шаг 3. Симуляция - моделирование работы МК.)
 
(не показано 36 промежуточных версий 2 участников)
Строка 2: Строка 2:
 
[[Категория:Микроконтроллеры]]
 
[[Категория:Микроконтроллеры]]
 
[[Категория:Цифровая электроника]]
 
[[Категория:Цифровая электроника]]
 +
Проект по переносу курса из источника [http://avr123.nm.ru avr123.nm.ru]
 +
{{InfoBlock|Что такое - электрический ток,  напряжение, закон Ома, резистор, конденсатор, индуктивность, транзистор - читайте в школьных учебниках по физике. Например в отличных интерактивных учебниках:
 +
* [[http://college.ru/physics/index.php Физика]],
 +
* [[http://college.ru/mathematics/index.php Математика]],
 +
* [[http://college.ru/modules.php?name=Practical Он-лайн лаборатория по физике]].
 +
 +
 +
Основные законы:
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph8/theory.html Закон Ома]],
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph9/theory.html Последовательное/параллельное соед. проводников]],
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph10/theory.html Правила Кирхгофа для разветвленных цепей]],
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph11/theory.html Работа и мощность тока]],
 +
* [[http://college.ru/physics/courses/op25part2/content/chapter1/section/paragraph14/theory.html NP-переход, Транзистор]]|Основы, которые надо знать!}}
 +
{{InfoBlock|Книги по электронике и AVR - [[http://lord-n.narod.ru/walla.html http://lord-n.narod.ru/walla.html]]
 +
 +
 +
При работе с иностранными текстами используйте онлайн перевод ([[http://www.Translate.ru www.Translate.ru]])!
 +
|Дополнительная информация}}
 +
 +
==Важная информация перед началом курса==
 +
===Соблюдайте технику безопасности!===
 +
Используйте средства защиты. Думайте и только потом делайте.  Всегда защищайте глаза ! Не работайте с приборами под высоким или сетевым напряжением, а если все же придется то не работайте в одиночку и одну руку всегда держите за спиной.
 +
 +
===Чайникам от Чайника!===
 +
Я постарался написать самое основное для начала применения микроконтроллеров простым языком с примерами и конечно с картинками !
 +
 +
'''Цель курса:'''  Помочь вам быстрей научиться применять микроконтроллеры AVR в ваших радио электронных устройствах.  Чтобы научиться вам придется поработать - внимательно читать и главное повторять, выполнять то, что написано.
 +
 +
===В этом курсе по МК AVR подробно рассказано и показано===
 +
* как сделать самые первые шаги, с чего начать конкретно - ШАГ за ШАГОМ
 +
* какие программы загрузить и где, как установить и как использовать
 +
* как устроен микроконтроллер, как AVR взаимодействует с внешними компонентами
 +
* как написать первую, простейшую программу для AVR и как управлять его модулями
 +
* как запустить программу в программе-симуляторе МК AVR и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить ПК
 +
* как сделать нужное вам электронное устройство, печатную плату
 +
* как загрузить программу в реальный МК
 +
* как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
 +
 +
== Начинаем разрабатывать программы для МК AVR ==
 +
=== Шаг 1. Скачайте всего две программы ===
 +
{{AttentionBlock|В  CVAVR 2  имена и расположение файлов создаваемых компилятором отличается от того что было в  CVAVR  и в примерах курса.<br><br>
 +
В CVAVR 2 имя файла исходного кода на Си не изменяется, а файл прошивки .hex и файл с отладочной информацией .cof получают имя как у файла проекта .prj<br>
 +
Для отладки по исходному коду на Си в симуляторах нужно использовать файл с названием:  {имя_вашего_файла_проекта_CVAVR2}.cof<br>
 +
Прошивка для МК будет назыаться:<br>
 +
{имя_вашего_файла_проекта_CVAVR2}.hex<br><br>
 +
 +
Если проект был создан мастером кода CVAVR 2 то в папке проекта появляется несколько новых папок. В папке Exe создается прошивка для МК - {имя_вашего_файла_проекта_CVAVR2}.hex<br>
 +
В папке List появляются файлы программы на ассемблере .asm и файл листинга .lst<br>
 +
Другие 2 папки Linker и Obj "чайнику" мало интересны.<br>
 +
 +
Но для VMLAB нужно что бы прошивка .hex была в папке проекта - поэтому в настройке проекта в CVAVR 2 - меню '''"Configure Project"''' в ярлыке '''"Output Directories"'''
 +
'''нужно убрать Exe''' и ниже нажать "ОК" - теперь прошивка .hex будет появляться после компиляции в папке проекта.
 +
}}
 +
 +
{{InfoBlock|Вам не нужно будет тратить деньги и время на поиски и покупку радио деталей и микроконтроллеров пока вы не убедитесь в работоспособности устройства которое вы делаете !
 +
 +
Вы не сожжете по неопытности что либо !
 +
 +
'''Не попадете в спешке, в азарте отладки устройства под высокое напряжение!'''<br>
 +
Это очень важно для начинающего электронщика '''Техника безопасности - ТБ'''!|Преимущества виртуальной разработки}}
  
Курс подробно рассказывает как сделать самые первые шаги,
 
с чего начать не вообще,  а  конкретно - ШАГ за ШАГОМ ...
 
  
* Как сделать нужное вам электронное устройство, печатную плату
 
* Как написать первую, простейшую программу для МК
 
* Как запустить эту программу в программе-симуляторе МК и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить порт вашего ПК !
 
* Как загрузить программу в реальный МК
 
* Как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
 
  
== Шаг 1. Скачайте всего две программы ==
 
 
# Компилятор  [http://www.hpinfotech.ro/cvavre.zip CodeVisionAVR] (2 Мб  всего)<br><small>Бесплатный DEMO до 2 кб кода, а полный CVAVR на сайте автора на сером фоне.</small>
 
# Компилятор  [http://www.hpinfotech.ro/cvavre.zip CodeVisionAVR] (2 Мб  всего)<br><small>Бесплатный DEMO до 2 кб кода, а полный CVAVR на сайте автора на сером фоне.</small>
 
# Симулятор AVR и электроники [http://www.amctools.com/download.htm VMLAB] (4,2 Мб FREE)
 
# Симулятор AVR и электроники [http://www.amctools.com/download.htm VMLAB] (4,2 Мб FREE)
 +
  
 
Теперь у вас есть качественное и удобное программное
 
Теперь у вас есть качественное и удобное программное
 
обеспечение для ПОЛНОГО цикла разработки устройств
 
обеспечение для ПОЛНОГО цикла разработки устройств
на МК (микроконтроллерах) AVR !
+
на МК (микроконтроллерах) AVR - и реальных и виртуальных.
  
 
От интерактивного помошника для создания начального кода,
 
От интерактивного помошника для создания начального кода,
скелета программы - '''инструмент бесценен для начинающего'''!
+
скелета программы - '''инструмент бесценен для начинающего'''! - это мастер CVAVR CodeWizard.
  
 
До написания и отладки полной программы с постоянным контролем её
 
До написания и отладки полной программы с постоянным контролем её
 
работы на всех этапах ее создания на компьютерной модели  нужного
 
работы на всех этапах ее создания на компьютерной модели  нужного
 
вам микроконтроллера AVR совместно с популярными электронными
 
вам микроконтроллера AVR совместно с популярными электронными
компонентами подключенными к нему виртуально.
+
компонентами подключенными к нему виртуально. А при желании и в реальном микроконтроллере в устройстве.
 
 
 
 
Вам не нужно будет тратить деньги и время
 
на поиски и покупку радио деталей и микроконтроллеров
 
пока вы не убедитесь в работоспособности устройства
 
которое вы делаете !
 
 
 
Вы не сожжете по неопытности что либо !
 
 
 
'''Не попадете в спешке, в азарте отладки устройства под высокое напряжение!'''<br>
 
Это очень важно для начинающего электронщика '''Техника безопасности - ТБ'''!
 
 
 
  
 +
Компилятор CVAVR имеет  встроеный программатор    для загрузки готовой программы в реальный микроконтроллер AVR
  
== Шаг 2. Попробуйте - всё ОЧЕНЬ просто ! ==
+
=== Шаг 2. Попробуйте - всё ОЧЕНЬ просто ! ===
Лучше один раз увидеть чем сто раз услышать.
+
Лучше один раз увидеть как работают программы-инструменты для AVR чем сто раз услышать.
  
 +
Сейчас вы попробуете установленные программы в деле, возможно не все сразу понимая - не волнуйтесь, читая и выполняя курс далее, вы во всём постепенно разберётесь.
 +
{{InfoBlock|
 +
* [[http://sites.google.com/site/thvortex/vmlab/avrlog AVR Studio Stimulus/Logger]] - Создание входных и захват выходных сигналов и их сохранение при симуляции в стиле AVR Studio
 +
* [[http://sites.google.com/site/thvortex/vmlab/vcdlog Verilog VCD Logger]] - Компонент позволяет сохранять в файл данные длительной симуляции.
 +
* [[http://sites.google.com/site/thvortex/vmlab/wavlog WAV Analog Stimulus/Logger]] - Позволяет вводить в схему сигналы из звукового файла WAV и сохранять в таком же виде результат.
 +
* [[http://sites.google.com/site/thvortex/vmlab/break Break On Edge]] - Точки останова по изменению сигнала - очень мощно для симуляции.
 +
* [[http://sites.google.com/site/thvortex/vmlab/delay Digital Signal Delay]] - Цифровая пауза для сигналов - позволяет сдвигать сигнал на нужное время.
 +
* [[http://sites.google.com/site/thvortex/vmlab/comxch COM Port Exchanger]] - "Квази Уно Фантазия" теперь VMLAB может работать с ваши физическим COM портом в ПК !  Свершилось.  Раньше такое только PROTEUS мог вытворять. Но PROTEUS конечно прекрасен.
 +
* [[http://sites.google.com/site/thvortex/vmlab/led7seg LED 7-Segment Display]] - 7-сегментный индикатор с десятичной точкой - несколько. Очень популярные и недорогие средства индикации.|Благодаря [[http://sites.google.com/site/thvortex/vmlab энтузиасту программисту]] VMLAB пополняется новыми компонентами}}
 
# Загрузите [http://avr123.nm.ru/z8/z8pwm_2.rar файлы]  к [[AVR123:Задача 8|задаче упражнению 8]]  (это всего 14 Кб) в созданную папку - '''c:\VMLAB\z8''' и распакуйте файлы архива в эту же папку.
 
# Загрузите [http://avr123.nm.ru/z8/z8pwm_2.rar файлы]  к [[AVR123:Задача 8|задаче упражнению 8]]  (это всего 14 Кб) в созданную папку - '''c:\VMLAB\z8''' и распакуйте файлы архива в эту же папку.
 
# Запустите VMLAB  и через меню '''Project''' -> '''open project''' откройте проект '''c:\vmlab\z8\vmlab.prj'''
 
# Запустите VMLAB  и через меню '''Project''' -> '''open project''' откройте проект '''c:\vmlab\z8\vmlab.prj'''
Строка 68: Строка 119:
 
'''Проделайте Шаг 2 сначала и более внимательно.'''
 
'''Проделайте Шаг 2 сначала и более внимательно.'''
  
== Шаг 3. Симуляция - моделирование работы МК. ==
+
=== Шаг 3. Симуляция - моделирование работы МК. ===
 
# Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что VMLAB контролирует правильность работы МК и содержимое программы. Если ему что-то не нравится то симуляция прерывается и в окне Messages появляется сообщений о причине. Подробнее это будет обсуждаться позже, а пока ...
 
# Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что VMLAB контролирует правильность работы МК и содержимое программы. Если ему что-то не нравится то симуляция прерывается и в окне Messages появляется сообщений о причине. Подробнее это будет обсуждаться позже, а пока ...
# Нажмите светофор еще пару или столько раз сколько потребуется  до начала  непрерывной симуляции.<br><br>Понаблюдайте внимательно что происходит на экране.<br><br>В окне SCOPE (это виртуальный осциллограф) вы видите как меняются напряжения на ножках МК указанных в файле проекта - vmlab.prj  Верхняя осциллограмма - это  сигнал на ножке TXD (PD1) по которой МК передает данные на COM порт ПК - что передает МК мы видим в виртуальном терминале TTY в панели Control Panel<br><br>Там выводится значение ШИМ (PWM) сигнала создаваемого на ножке PD5 - а сам сигнал виден в окне SCOPE  - посмотрите как он меняется в соответствии с сообщаемыми числовыми значениями...<br><br>В файле проекта - vmlab.prj  к ножке PD5 подключен простейший фильтр нижних частот (ФНЧ) из резистора и конденсатора - он преобразует ШИМ в постоянное напряжение которое можно увидеть в окне SCOPE сигнал DAC (ЦАП по-русски).<br><br>Подробнее о фильтрации и усилении сигналов <!--z09b-->там.
+
# Нажмите светофор еще пару или столько раз сколько потребуется  до начала  непрерывной симуляции.
 +
#:Понаблюдайте внимательно что происходит на экране.
 +
#:*В окне SCOPE (это виртуальный осциллограф) вы видите как меняются напряжения на ножках МК указанных в файле проекта - vmlab.prj  Верхняя осциллограмма - это  сигнал на ножке TXD (PD1) по которой МК передает данные на COM порт ПК - что передает МК мы видим в виртуальном терминале TTY в панели Control Panel
 +
#:*Там выводится значение ШИМ (PWM) сигнала создаваемого на ножке PD5 - а сам сигнал виден в окне SCOPE  - посмотрите как он меняется в соответствии с сообщаемыми числовыми значениями...
 +
#:*В файле проекта - vmlab.prj  к ножке PD5 подключен простейший фильтр нижних частот (ФНЧ) из резистора и конденсатора - он преобразует ШИМ в постоянное напряжение которое можно увидеть в окне SCOPE сигнал DAC (ЦАП по-русски).
 +
#:*Подробнее о фильтрации и усилении сигналов читайте в задаче 9б.
 
# Остановите программу красной кнопкой  STOP. В окне Messages появится сообщение о том что программа остановлена пользователем - User break
 
# Остановите программу красной кнопкой  STOP. В окне Messages появится сообщение о том что программа остановлена пользователем - User break
 
# Разверните окно Code - в нем отображается исходный код программы которая "прошита" в МК и выполняется при симуляции. Вы увидите что некоторые строки программы подсвечиваются желтым цветом - длина подсветки пропорциональна времени которое программа тратит на выполнение этой строки.
 
# Разверните окно Code - в нем отображается исходный код программы которая "прошита" в МК и выполняется при симуляции. Вы увидите что некоторые строки программы подсвечиваются желтым цветом - длина подсветки пропорциональна времени которое программа тратит на выполнение этой строки.
Строка 82: Строка 138:
 
отображается и в окне '''Messages'''.
 
отображается и в окне '''Messages'''.
  
== Шаг 4.  Как изменить программу? ==
+
=== Шаг 4.  Как изменить программу? ===
 
Вам предстоит многократно менять создаваемые программы - в процессе отладки, пока они не начнут работать так как вы хотите.
 
Вам предстоит многократно менять создаваемые программы - в процессе отладки, пока они не начнут работать так как вы хотите.
  
Строка 158: Строка 214:
 
и возможно после ее исправления другие ошибки тоже пропадут.
 
и возможно после ее исправления другие ошибки тоже пропадут.
  
== Шаг 5.  Симуляция после правки ==
+
=== Шаг 5.  Симуляция после правки ===
 
# Разверните окно симулятора VMLAB -  выскочит сообщение о том что файл с текстом симулируемой программы изменен. Мы же его меняли в компиляторе. Закройте его кликнув "ОК".
 
# Разверните окно симулятора VMLAB -  выскочит сообщение о том что файл с текстом симулируемой программы изменен. Мы же его меняли в компиляторе. Закройте его кликнув "ОК".
 
# Сделайте "глубокий рестарт" симуляции кнопкой с круговой темно-синей стрелкой и перекомпилируйте весь проект как в Шаге 2 пункт 4 или нажав комбинацию: Shift+F9<br><br>'''Все готово к повторной симуляции.'''
 
# Сделайте "глубокий рестарт" симуляции кнопкой с круговой темно-синей стрелкой и перекомпилируйте весь проект как в Шаге 2 пункт 4 или нажав комбинацию: Shift+F9<br><br>'''Все готово к повторной симуляции.'''

Текущая версия на 08:50, 25 сентября 2009

Проект по переносу курса из источника avr123.nm.ru

Информация
Основы, которые надо знать!

Что такое - электрический ток, напряжение, закон Ома, резистор, конденсатор, индуктивность, транзистор - читайте в школьных учебниках по физике. Например в отличных интерактивных учебниках:


Основные законы:



Информация
Дополнительная информация

Книги по электронике и AVR - [http://lord-n.narod.ru/walla.html]


При работе с иностранными текстами используйте онлайн перевод ([www.Translate.ru])!



Важная информация перед началом курса

Соблюдайте технику безопасности!

Используйте средства защиты. Думайте и только потом делайте. Всегда защищайте глаза ! Не работайте с приборами под высоким или сетевым напряжением, а если все же придется то не работайте в одиночку и одну руку всегда держите за спиной.

Чайникам от Чайника!

Я постарался написать самое основное для начала применения микроконтроллеров простым языком с примерами и конечно с картинками !

Цель курса: Помочь вам быстрей научиться применять микроконтроллеры AVR в ваших радио электронных устройствах. Чтобы научиться вам придется поработать - внимательно читать и главное повторять, выполнять то, что написано.

В этом курсе по МК AVR подробно рассказано и показано

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

Начинаем разрабатывать программы для МК AVR

Шаг 1. Скачайте всего две программы

Внимание!
Внимание!

В CVAVR 2 имена и расположение файлов создаваемых компилятором отличается от того что было в CVAVR и в примерах курса.

В CVAVR 2 имя файла исходного кода на Си не изменяется, а файл прошивки .hex и файл с отладочной информацией .cof получают имя как у файла проекта .prj
Для отладки по исходному коду на Си в симуляторах нужно использовать файл с названием: {имя_вашего_файла_проекта_CVAVR2}.cof
Прошивка для МК будет назыаться:
{имя_вашего_файла_проекта_CVAVR2}.hex

Если проект был создан мастером кода CVAVR 2 то в папке проекта появляется несколько новых папок. В папке Exe создается прошивка для МК - {имя_вашего_файла_проекта_CVAVR2}.hex
В папке List появляются файлы программы на ассемблере .asm и файл листинга .lst
Другие 2 папки Linker и Obj "чайнику" мало интересны.

Но для VMLAB нужно что бы прошивка .hex была в папке проекта - поэтому в настройке проекта в CVAVR 2 - меню "Configure Project" в ярлыке "Output Directories" нужно убрать Exe и ниже нажать "ОК" - теперь прошивка .hex будет появляться после компиляции в папке проекта.



Информация
Преимущества виртуальной разработки

Вам не нужно будет тратить деньги и время на поиски и покупку радио деталей и микроконтроллеров пока вы не убедитесь в работоспособности устройства которое вы делаете !

Вы не сожжете по неопытности что либо !

Не попадете в спешке, в азарте отладки устройства под высокое напряжение!

Это очень важно для начинающего электронщика Техника безопасности - ТБ!




  1. Компилятор CodeVisionAVR (2 Мб всего)
    Бесплатный DEMO до 2 кб кода, а полный CVAVR на сайте автора на сером фоне.
  2. Симулятор AVR и электроники VMLAB (4,2 Мб FREE)


Теперь у вас есть качественное и удобное программное обеспечение для ПОЛНОГО цикла разработки устройств на МК (микроконтроллерах) AVR - и реальных и виртуальных.

От интерактивного помошника для создания начального кода, скелета программы - инструмент бесценен для начинающего! - это мастер CVAVR CodeWizard.

До написания и отладки полной программы с постоянным контролем её работы на всех этапах ее создания на компьютерной модели нужного вам микроконтроллера AVR совместно с популярными электронными компонентами подключенными к нему виртуально. А при желании и в реальном микроконтроллере в устройстве.

Компилятор CVAVR имеет встроеный программатор для загрузки готовой программы в реальный микроконтроллер AVR

Шаг 2. Попробуйте - всё ОЧЕНЬ просто !

Лучше один раз увидеть как работают программы-инструменты для AVR чем сто раз услышать.

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

Информация
Благодаря [энтузиасту программисту] VMLAB пополняется новыми компонентами

  • [AVR Studio Stimulus/Logger] - Создание входных и захват выходных сигналов и их сохранение при симуляции в стиле AVR Studio
  • [Verilog VCD Logger] - Компонент позволяет сохранять в файл данные длительной симуляции.
  • [WAV Analog Stimulus/Logger] - Позволяет вводить в схему сигналы из звукового файла WAV и сохранять в таком же виде результат.
  • [Break On Edge] - Точки останова по изменению сигнала - очень мощно для симуляции.
  • [Digital Signal Delay] - Цифровая пауза для сигналов - позволяет сдвигать сигнал на нужное время.
  • [COM Port Exchanger] - "Квази Уно Фантазия" теперь VMLAB может работать с ваши физическим COM портом в ПК ! Свершилось. Раньше такое только PROTEUS мог вытворять. Но PROTEUS конечно прекрасен.
  • [LED 7-Segment Display] - 7-сегментный индикатор с десятичной точкой - несколько. Очень популярные и недорогие средства индикации.



  1. Загрузите файлы к задаче упражнению 8 (это всего 14 Кб) в созданную папку - c:\VMLAB\z8 и распакуйте файлы архива в эту же папку.
  2. Запустите VMLAB и через меню Project -> open project откройте проект c:\vmlab\z8\vmlab.prj
  3. Сверните мешающее окно vmlab.prj и подправьте "мышкой" остальные окна чтобы получить такую картинку:
    Avr123 00.png

    Вы видите:
    • 8 светодиодов,
    • 3 переменных резистора,
    • клавиатуру на 16 кнопок которые можно использовать и раздельно,
    • виртуальный ЗАПОМИНАЮЩИЙ осциллограф
    • виртуальный терминал с записью данных
    • просмотр портов МК
    • слежение за содержанием переменных
    • отладка по коду программы на Си
    • диаграмма PD1 - передача по USART
    Весь богатейший набор компонентов VMLAB будет рассмотрен позже и конечно описан в его HELP.
  4. Теперь в меню "Project" кликните "Re-build all" - проект нужно перекомпилировать при открытии и внесении каких либо изменений. В окне "Messages" появится сообщение "Success! All ready to run"
    Avr123 01.png

Это значит ошибок нет и все готово к моделированию микроконтроллера ATmega16. Вверху загорелся зеленым светом светофор.

Можно запускать симуляцию ...


Если появилось сообщение об ошибке и светофор не загорелся - вы допустили ошибку на каком то этапе.
Проделайте Шаг 2 сначала и более внимательно.

Шаг 3. Симуляция - моделирование работы МК.

  1. Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что VMLAB контролирует правильность работы МК и содержимое программы. Если ему что-то не нравится то симуляция прерывается и в окне Messages появляется сообщений о причине. Подробнее это будет обсуждаться позже, а пока ...
  2. Нажмите светофор еще пару или столько раз сколько потребуется до начала непрерывной симуляции.
    Понаблюдайте внимательно что происходит на экране.
    • В окне SCOPE (это виртуальный осциллограф) вы видите как меняются напряжения на ножках МК указанных в файле проекта - vmlab.prj Верхняя осциллограмма - это сигнал на ножке TXD (PD1) по которой МК передает данные на COM порт ПК - что передает МК мы видим в виртуальном терминале TTY в панели Control Panel
    • Там выводится значение ШИМ (PWM) сигнала создаваемого на ножке PD5 - а сам сигнал виден в окне SCOPE - посмотрите как он меняется в соответствии с сообщаемыми числовыми значениями...
    • В файле проекта - vmlab.prj к ножке PD5 подключен простейший фильтр нижних частот (ФНЧ) из резистора и конденсатора - он преобразует ШИМ в постоянное напряжение которое можно увидеть в окне SCOPE сигнал DAC (ЦАП по-русски).
    • Подробнее о фильтрации и усилении сигналов читайте в задаче 9б.
  3. Остановите программу красной кнопкой STOP. В окне Messages появится сообщение о том что программа остановлена пользователем - User break
  4. Разверните окно Code - в нем отображается исходный код программы которая "прошита" в МК и выполняется при симуляции. Вы увидите что некоторые строки программы подсвечиваются желтым цветом - длина подсветки пропорциональна времени которое программа тратит на выполнение этой строки.
  5. Найдите строку в программе:<source lang="c">pwm_val = ((1023 * (u32)pwm)/100);</source>Щелкните по квадратику с зеленой вставочкой перед этой строкой - он превратится в красный знак STOP вы поставили "точку останова" (Break point) - теперь программа автоматически остановится перед выполнением этой строки.
  6. Сверните окно Code и нажмите светофор для продолжения симуляции.
    Дождитесь остановки программы на этой строке (на этой точке останова) - при остановке строка программы подсветится голубым цветом. Посмотрите на панели внизу справа текущее "чистое" время (без учета остановок) прошедшее с запуска программы - запомните.
  7. Теперь продолжите симуляцию - надеюсь вы уже знаете как это сделать! (нажать зеленый светофор) Через некоторое время программа опять остановится на этой строке но время уже будет другим. Вычтите из него время прошлой остановки и вы получите время выполнения этого участка программы.

О более точном измерении интервалов времени я расскажу вам позже.

Информация об остановках программы отображается и в окне Messages.

Шаг 4. Как изменить программу?

Вам предстоит многократно менять создаваемые программы - в процессе отладки, пока они не начнут работать так как вы хотите.

  1. Запустите компилятор CodevisionAVR (CVAVR) и через меню File -> Open откройте файл проекта CVAVR - c:\vmlab\z8\cv.prj
  2. Разверните окно с текстом программы. Вы видите что программа начинается с оформленного в виде комментария краткого описания того что она делает и некоторых технических параметров. Программа написана на языке Си - который является пожалуй самым популярным и удобным при программировании для МК. Не пытайтесь сразу понять что написано в этой программе. Сейчас это вам не нужно ! Понимать программы и уметь их создавать вы будете после освоения всего курса. Пока просто внесем изменение в программу и утвердим их перекомпиляцией.
  3. Найдите в тексте программы в компиляторе CVAVR строки: <source lang="c"> putchar('P'); // вывод в USART символа P putchar('W'); putchar('M'); </source> Давайте заменим выводимое этими строками слово PWM на слово WOW (типа вау! получилось!) - вот так: <source lang="c"> putchar('W'); // вывод в USART символа W putchar('O'); putchar('W'); </source>
  4. После внесения изменений в исходный текст программы ее нужно cкомпилировать. Компилятор должен превратить вашу программу в файл "прошивку" .hex который можно прошить (загрузить) в реальный МК или использовать в симуляторах.
  5. Для выполнения компиляции нажмите кнопку "Make the project"
    Avr123 03.png
    После компиляции появится информационное окно в котором сообщается что наша программа содержит целых 5 ошибок!

    В чем же дело?

    Где найдены ошибки и каковы они написано красным цветом в левой части экрана в окне Navigator - навигации по проекту CVAVR
    Avr123 04.png

    При наведении курсора можно увидеть описание ошибок.
  6. Первая ошибка - "не могу открыть файл m8_128.h"

    Все ясно. Этот файл включен в исходный текст программы строкой: <source lang="c">
    1. include <m8_128.h>
    </source> Этот файл я создал для возможности прямой вставки примеров на Си из даташита в текст программы в CVAVR. В инсталяции компилятора его нет. Но в тексте программы написано где можно взять этот файл - скачайте m8_128.h
    Скачав, поместите его в папку INC компилятора CVAVR.
  7. Снова компилируем программу кнопкой "Make the project" - теперь получаем сообщение об отсутствии ошибок и о размере программы и о том сколько это %% от максимального размера программы для данного МК.

    Посмотрите внимательно - хотя ошибок нет - есть "вонинг" - это замечание от компилятора. Вонинги не критичны, но можно посмотреть в навигаторе о чем они.

    Закройте информационное окно кнопкой "ОК".


Вы выполнили всего 4 не сложных шажка
Но уже знаете что

Моделировать работу МК можно на компьютере не имея самого МК и электронной схемы вокруг него. При этом видеть не только то что происходит на ножках МК но и то что происходит внутри МК!!! с помощью нижних частей меню View и Window симулятора VMLAB.

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

Шаг 5. Симуляция после правки

  1. Разверните окно симулятора VMLAB - выскочит сообщение о том что файл с текстом симулируемой программы изменен. Мы же его меняли в компиляторе. Закройте его кликнув "ОК".
  2. Сделайте "глубокий рестарт" симуляции кнопкой с круговой темно-синей стрелкой и перекомпилируйте весь проект как в Шаге 2 пункт 4 или нажав комбинацию: Shift+F9

    Все готово к повторной симуляции.
  3. Нажмите светофор 3 раза - начнется непрерывная симуляция и вы увидите результат правки программы в компиляторе CVAVR в окне виртуального терминала симулятора VMLAB - вот он:

Avr123 05.png

Обратите внимание на то что симулятор показывает примерный расчетный ток потребления МК. Скорость симуляции можно снизить регулятором Speed. А частоту кварца можно поменять кнопками Clock.

Кроме того указаны текущие параметры настройки терминала которые можно изменить нажав кнопку "Set parameters". Кнопки "Clear" очищают окна. Вы можете набирать текст в окне TX и он будет передаваться в МК (см. пример к симулятору C:\VMLAB\AVR_demo\UART.PRJ) а можно передать в МК текстовый файл кнопкой "TX File". Если отметить чек-бокс "RX to file" то данные поступившие от МК будут записываться в файл на ПК.