AVR123:Введение — различия между версиями
Vooon (обсуждение | вклад) |
Vooon (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
[[Категория:Цифровая электроника]] | [[Категория:Цифровая электроника]] | ||
− | Курс подробно рассказывает как сделать самые первые шаги, | + | Курс подробно рассказывает как сделать самые первые шаги, |
− | с чего начать не вообще, а конкретно - ШАГ за ШАГОМ ... | + | с чего начать не вообще, а конкретно - ШАГ за ШАГОМ ... |
* Как сделать нужное вам электронное устройство, печатную плату | * Как сделать нужное вам электронное устройство, печатную плату | ||
* Как написать первую, простейшую программу для МК | * Как написать первую, простейшую программу для МК | ||
* Как запустить эту программу в программе-симуляторе МК и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить порт вашего ПК ! | * Как запустить эту программу в программе-симуляторе МК и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить порт вашего ПК ! | ||
− | * Как загрузить программу в реальный МК | + | * Как загрузить программу в реальный МК |
* Как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей. | * Как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей. | ||
Строка 46: | Строка 46: | ||
# Загрузите [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''' | ||
− | # Сверните мешающее окно vmlab.prj и подправьте "мышкой" остальные окна чтобы получить такую картинку: | + | # Сверните мешающее окно vmlab.prj и подправьте "мышкой" остальные окна чтобы получить такую картинку:<br>[[Image:avr123_00.png|400px]]<br><br>Вы видите: |
+ | #* 8 светодиодов, | ||
+ | #* 3 переменных резистора, | ||
+ | #* клавиатуру на 16 кнопок которые можно использовать и раздельно, | ||
+ | #* виртуальный ЗАПОМИНАЮЩИЙ осциллограф | ||
+ | #* виртуальный терминал с записью данных | ||
+ | #* просмотр портов МК | ||
+ | #* слежение за содержанием переменных | ||
+ | #* отладка по коду программы на Си | ||
+ | #* диаграмма PD1 - передача по USART | ||
+ | #: Весь богатейший набор компонентов VMLAB будет рассмотрен <!--[[???|позже]] адрес 6ой стр. курса-->позже и конечно описан в его HELP. | ||
+ | # Теперь в меню "Project" кликните "Re-build all" - проект нужно перекомпилировать при открытии и внесении каких либо изменений. В окне '''"Messages"''' появится сообщение '''"Success! All ready to run"'''<br>[[Image:avr123_01.png|400px]] | ||
− | [[Image: | + | Это значит ошибок нет и все готово к моделированию микроконтроллера |
+ | ATmega16. Вверху загорелся зеленым светом светофор. | ||
+ | |||
+ | Можно запускать симуляцию ... | ||
+ | |||
+ | |||
+ | Если появилось сообщение об ошибке и светофор не загорелся - вы допустили ошибку на каком то этапе.<br> | ||
+ | '''Проделайте Шаг 2 сначала и более внимательно.''' | ||
+ | |||
+ | == Шаг 3. Симуляция - моделирование работы МК. == | ||
+ | # Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что 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-->там. | ||
+ | # Остановите программу красной кнопкой STOP. В окне Messages появится сообщение о том что программа остановлена пользователем - User break | ||
+ | # Разверните окно Code - в нем отображается исходный код программы которая "прошита" в МК и выполняется при симуляции. Вы увидите что некоторые строки программы подсвечиваются желтым цветом - длина подсветки пропорциональна времени которое программа тратит на выполнение этой строки. | ||
+ | # Найдите строку в программе:<source lang="c">pwm_val = ((1023 * (u32)pwm)/100);</source>Щелкните по квадратику с зеленой вставочкой перед этой строкой - он превратится в красный знак STOP вы поставили "точку останова" (Break point) - теперь программа автоматически остановится перед выполнением этой строки. | ||
+ | # Сверните окно Code и нажмите светофор для продолжения симуляции.<br>Дождитесь остановки программы на этой строке (на этой точке останова) - при остановке строка программы подсветится голубым цветом. Посмотрите на панели внизу справа текущее "чистое" время (без учета остановок) прошедшее с запуска программы - запомните. | ||
+ | # Теперь продолжите симуляцию - надеюсь вы уже знаете как это сделать! (нажать зеленый светофор) Через некоторое время программа опять остановится на этой строке но время уже будет другим. Вычтите из него время прошлой остановки и вы получите время выполнения этого участка программы. | ||
+ | |||
+ | О более точном измерении интервалов времени я расскажу вам позже. | ||
+ | |||
+ | Информация об остановках программы | ||
+ | отображается и в окне '''Messages'''. | ||
+ | |||
+ | == Шаг 4. Как изменить программу? == | ||
+ | Вам предстоит многократно менять создаваемые программы - в процессе отладки, пока они не начнут работать так как вы хотите. | ||
+ | |||
+ | <ol> | ||
+ | <li> Запустите компилятор CodevisionAVR (CVAVR) и через меню '''File -> Open''' откройте файл проекта CVAVR - '''c:\vmlab\z8\cv.prj''' | ||
+ | </li> | ||
+ | <li> Разверните окно с текстом программы. Вы видите что программа начинается с оформленного в виде комментария краткого описания того что она делает и некоторых технических параметров. Программа написана на языке Си - который является пожалуй самым популярным и удобным при программировании для МК. | ||
+ | |||
+ | Не пытайтесь сразу понять что написано в этой программе. | ||
+ | |||
+ | Сейчас это вам не нужно ! | ||
+ | |||
+ | Понимать программы и уметь их создавать вы будете после освоения всего курса. | ||
+ | |||
+ | Пока просто внесем изменение в программу и утвердим их перекомпиляцией. | ||
+ | </li> | ||
+ | <li> Найдите в тексте программы в компиляторе 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> | ||
+ | </li> | ||
+ | <li> После внесения изменений в исходный текст программы ее нужно cкомпилировать. Компилятор должен превратить вашу программу в файл "прошивку" '''.hex''' который можно прошить (загрузить) в реальный МК или использовать в симуляторах. | ||
+ | </li> | ||
+ | <li> Для выполнения компиляции нажмите кнопку '''"Make the project"''' | ||
+ | <br>[[Image:avr123_03.png|400px]]<br> | ||
+ | После компиляции появится информационное окно в котором сообщается что наша программа содержит целых 5 ошибок!<br> | ||
+ | <br> | ||
+ | В чем же дело?<br> | ||
+ | <br> | ||
+ | Где найдены ошибки и каковы они написано красным цветом в левой части экрана в окне Navigator - навигации по проекту CVAVR | ||
+ | <br>[[Image:avr123_04.png|400px]]<br><br> | ||
+ | При наведении курсора можно увидеть описание ошибок. | ||
+ | </li> | ||
+ | <li> Первая ошибка - "не могу открыть файл m8_128.h"<br> | ||
+ | <br> | ||
+ | Все ясно. Этот файл включен в исходный текст программы строкой: | ||
+ | <source lang="c"> | ||
+ | #include <m8_128.h> | ||
+ | </source> | ||
+ | Этот файл я создал для возможности прямой вставки примеров на Си из даташита в текст программы в CVAVR. В инсталяции компилятора его нет. Но в тексте программы написано где можно взять этот файл - скачайте m8_128.h<br> | ||
+ | Скачав, поместите его в папку INC компилятора CVAVR. | ||
+ | </li> | ||
+ | <li> Снова компилируем программу кнопкой "Make the project" - теперь получаем сообщение об отсутствии ошибок и о размере программы и о том сколько это %% | ||
+ | от максимального размера программы для данного МК.<br> | ||
+ | <br> | ||
+ | Посмотрите внимательно - хотя ошибок нет - есть "вонинг" - это замечание от компилятора. Вонинги не критичны, но можно посмотреть в навигаторе о чем они.<br> | ||
+ | <br> | ||
+ | Закройте информационное окно кнопкой "ОК". | ||
+ | </li> | ||
+ | </ol> | ||
+ | |||
+ | |||
+ | '''Вы выполнили всего 4 не сложных шажка'''<br> | ||
+ | Но уже знаете что | ||
+ | |||
+ | Моделировать работу МК можно на компьютере не имея самого | ||
+ | МК и электронной схемы вокруг него. При этом видеть не только | ||
+ | то что происходит на ножках МК но и то что происходит внутри | ||
+ | МК!!! с помощью нижних частей меню View и Window | ||
+ | симулятора VMLAB. | ||
+ | |||
+ | Вы уже знаете как открыть проект в компиляторе, внести | ||
+ | изменения, скомпили-ровать программу, увидеть ошибки, | ||
+ | исправить их. Вы теперь знаете, что не нужно пытаться | ||
+ | исправлять все ошибки сразу, а нужно начинать с первой | ||
+ | и возможно после ее исправления другие ошибки тоже пропадут. |
Версия 18:12, 12 сентября 2007
Курс подробно рассказывает как сделать самые первые шаги,
с чего начать не вообще, а конкретно - ШАГ за ШАГОМ ...
- Как сделать нужное вам электронное устройство, печатную плату
- Как написать первую, простейшую программу для МК
- Как запустить эту программу в программе-симуляторе МК и увидеть как она работает не покупая МК и радиодеталей, а значит без риска спалить что-то или испортить порт вашего ПК !
- Как загрузить программу в реальный МК
- Как отладить реальное устройство - т.е. найти причины не правильной работы и добиться его функционирования в соответствии с поставленной задачей.
Содержание
Шаг 1. Скачайте всего две программы
- Компилятор CodeVisionAVR (2 Мб всего)
Бесплатный DEMO до 2 кб кода, а полный CVAVR на сайте автора на сером фоне. - Симулятор AVR и электроники VMLAB (4,2 Мб FREE)
Теперь у вас есть качественное и удобное программное обеспечение для ПОЛНОГО цикла разработки устройств на МК (микроконтроллерах) AVR !
От интерактивного помошника для создания начального кода, скелета программы - инструмент бесценен для начинающего!
До написания и отладки полной программы с постоянным контролем её работы на всех этапах ее создания на компьютерной модели нужного вам микроконтроллера AVR совместно с популярными электронными компонентами подключенными к нему виртуально.
Вам не нужно будет тратить деньги и время
на поиски и покупку радио деталей и микроконтроллеров
пока вы не убедитесь в работоспособности устройства
которое вы делаете !
Вы не сожжете по неопытности что либо !
Не попадете в спешке, в азарте отладки устройства под высокое напряжение!
Это очень важно для начинающего электронщика Техника безопасности - ТБ!
Шаг 2. Попробуйте - всё ОЧЕНЬ просто !
Лучше один раз увидеть чем сто раз услышать.
- Загрузите файлы к задаче упражнению 8 (это всего 14 Кб) в созданную папку - c:\VMLAB\z8 и распакуйте файлы архива в эту же папку.
- Запустите VMLAB и через меню Project -> open project откройте проект c:\vmlab\z8\vmlab.prj
- Сверните мешающее окно vmlab.prj и подправьте "мышкой" остальные окна чтобы получить такую картинку:
Вы видите:- 8 светодиодов,
- 3 переменных резистора,
- клавиатуру на 16 кнопок которые можно использовать и раздельно,
- виртуальный ЗАПОМИНАЮЩИЙ осциллограф
- виртуальный терминал с записью данных
- просмотр портов МК
- слежение за содержанием переменных
- отладка по коду программы на Си
- диаграмма PD1 - передача по USART
- Весь богатейший набор компонентов VMLAB будет рассмотрен позже и конечно описан в его HELP.
- Теперь в меню "Project" кликните "Re-build all" - проект нужно перекомпилировать при открытии и внесении каких либо изменений. В окне "Messages" появится сообщение "Success! All ready to run"
Это значит ошибок нет и все готово к моделированию микроконтроллера ATmega16. Вверху загорелся зеленым светом светофор.
Можно запускать симуляцию ...
Если появилось сообщение об ошибке и светофор не загорелся - вы допустили ошибку на каком то этапе.
Проделайте Шаг 2 сначала и более внимательно.
Шаг 3. Симуляция - моделирование работы МК.
- Нажмите мышкой светофор - это аналогично включению устройства, подаче питания на МК - программа зашитая в него начинает выполняться... И тут же остановка! Дело в том что VMLAB контролирует правильность работы МК и содержимое программы. Если ему что-то не нравится то симуляция прерывается и в окне Messages появляется сообщений о причине. Подробнее это будет обсуждаться позже, а пока ...
- Нажмите светофор еще пару или столько раз сколько потребуется до начала непрерывной симуляции.
Понаблюдайте внимательно что происходит на экране.
В окне SCOPE (это виртуальный осциллограф) вы видите как меняются напряжения на ножках МК указанных в файле проекта - vmlab.prj Верхняя осциллограмма - это сигнал на ножке TXD (PD1) по которой МК передает данные на COM порт ПК - что передает МК мы видим в виртуальном терминале TTY в панели Control Panel
Там выводится значение ШИМ (PWM) сигнала создаваемого на ножке PD5 - а сам сигнал виден в окне SCOPE - посмотрите как он меняется в соответствии с сообщаемыми числовыми значениями...
В файле проекта - vmlab.prj к ножке PD5 подключен простейший фильтр нижних частот (ФНЧ) из резистора и конденсатора - он преобразует ШИМ в постоянное напряжение которое можно увидеть в окне SCOPE сигнал DAC (ЦАП по-русски).
Подробнее о фильтрации и усилении сигналов там. - Остановите программу красной кнопкой STOP. В окне Messages появится сообщение о том что программа остановлена пользователем - User break
- Разверните окно Code - в нем отображается исходный код программы которая "прошита" в МК и выполняется при симуляции. Вы увидите что некоторые строки программы подсвечиваются желтым цветом - длина подсветки пропорциональна времени которое программа тратит на выполнение этой строки.
- Найдите строку в программе:<source lang="c">pwm_val = ((1023 * (u32)pwm)/100);</source>Щелкните по квадратику с зеленой вставочкой перед этой строкой - он превратится в красный знак STOP вы поставили "точку останова" (Break point) - теперь программа автоматически остановится перед выполнением этой строки.
- Сверните окно Code и нажмите светофор для продолжения симуляции.
Дождитесь остановки программы на этой строке (на этой точке останова) - при остановке строка программы подсветится голубым цветом. Посмотрите на панели внизу справа текущее "чистое" время (без учета остановок) прошедшее с запуска программы - запомните. - Теперь продолжите симуляцию - надеюсь вы уже знаете как это сделать! (нажать зеленый светофор) Через некоторое время программа опять остановится на этой строке но время уже будет другим. Вычтите из него время прошлой остановки и вы получите время выполнения этого участка программы.
О более точном измерении интервалов времени я расскажу вам позже.
Информация об остановках программы отображается и в окне Messages.
Шаг 4. Как изменить программу?
Вам предстоит многократно менять создаваемые программы - в процессе отладки, пока они не начнут работать так как вы хотите.
- Запустите компилятор CodevisionAVR (CVAVR) и через меню File -> Open откройте файл проекта CVAVR - c:\vmlab\z8\cv.prj
- Разверните окно с текстом программы. Вы видите что программа начинается с оформленного в виде комментария краткого описания того что она делает и некоторых технических параметров. Программа написана на языке Си - который является пожалуй самым популярным и удобным при программировании для МК. Не пытайтесь сразу понять что написано в этой программе. Сейчас это вам не нужно ! Понимать программы и уметь их создавать вы будете после освоения всего курса. Пока просто внесем изменение в программу и утвердим их перекомпиляцией.
- Найдите в тексте программы в компиляторе 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>
- После внесения изменений в исходный текст программы ее нужно cкомпилировать. Компилятор должен превратить вашу программу в файл "прошивку" .hex который можно прошить (загрузить) в реальный МК или использовать в симуляторах.
- Для выполнения компиляции нажмите кнопку "Make the project"
После компиляции появится информационное окно в котором сообщается что наша программа содержит целых 5 ошибок!
В чем же дело?
Где найдены ошибки и каковы они написано красным цветом в левой части экрана в окне Navigator - навигации по проекту CVAVR
При наведении курсора можно увидеть описание ошибок. - Первая ошибка - "не могу открыть файл m8_128.h"
Все ясно. Этот файл включен в исходный текст программы строкой: <source lang="c">- include <m8_128.h>
Скачав, поместите его в папку INC компилятора CVAVR. - Снова компилируем программу кнопкой "Make the project" - теперь получаем сообщение об отсутствии ошибок и о размере программы и о том сколько это %%
от максимального размера программы для данного МК.
Посмотрите внимательно - хотя ошибок нет - есть "вонинг" - это замечание от компилятора. Вонинги не критичны, но можно посмотреть в навигаторе о чем они.
Закройте информационное окно кнопкой "ОК".
Вы выполнили всего 4 не сложных шажка
Но уже знаете что
Моделировать работу МК можно на компьютере не имея самого МК и электронной схемы вокруг него. При этом видеть не только то что происходит на ножках МК но и то что происходит внутри МК!!! с помощью нижних частей меню View и Window симулятора VMLAB.
Вы уже знаете как открыть проект в компиляторе, внести изменения, скомпили-ровать программу, увидеть ошибки, исправить их. Вы теперь знаете, что не нужно пытаться исправлять все ошибки сразу, а нужно начинать с первой и возможно после ее исправления другие ошибки тоже пропадут.