Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОМПТ Шарапов. А.В.doc
Скачиваний:
221
Добавлен:
10.05.2015
Размер:
3.94 Mб
Скачать

Контрольные вопросы

  • Чем ограничен размер массива?

  • Перечислите все методы адресации памяти данных.

  • Разрешены ли прерывания после системного сброса?

  • Для чего нужен регистр Input capture (ICR)? Назовите ситуации, когда необходимо его использование. Назовите его альтернативные функции.

  • Что должно произойти при достижении счётчиком значения 0x01FF, если в битах WGMn3:1 записано 0b0010? 0b0110? Как при этом поведёт себя OCnx?

  • Что может выступать в качестве источника импульсов синхронизации таймеров/счётчиков?

Содержание отчета

Отчет должен содержать листинги отлаживаемых программ (в том числе и по индивидуальным заданиям), комментарии по ходу выполнения пунктов работы и рисунки, вставляемые в текст формата WORD, отображающие окна регистров и памяти, а также ответы на контрольные вопросы.

6 Средства разработки программы на языке си, компиляторы и симуляторы

При проектировании микропроцессорного устройства вы определились с тем, что оно должно делать, нарисовали схему устройства, физически способную выполнить вашу задачу. Программу для МК удобно создавать с помощью специальных программных средств – компиляторов. Компилятор позволяет написать программу для МК на универсальном языке программирования Си (кстати, для МК требуется всего 3-5% всех его возможностей).

Текст программы, набранный в компиляторе, называют исходным кодом. Компилятор проверяет отсутствие ошибок в набранном исходнике и, если ошибок нет, преобразует исходник (компилирует его) в специальный файл обычно с расширением .hex – его называют  "прошивка". 

Прошивку с помощью программатора  (для AVR это, например, пять проводков с параллельного порта ПК) помещают во FLASH-память программ МК и при необходимости частично в его EEPROM.

  Очень трудно написать программу сразу правильно и без ошибок. Поэтому важнейшим этапом разработки электронного устройства является отладка программы МК.  

  Для отладки вы включаете устройство с прошитым МК, находите отклонения от требуемого алгоритма, выявляете ошибки, вносите соответствующие изменения в исходный текст программы и опять компилируете, прошиваете новый .hex в МК и так до победного конца – т.е. до тех пор, пока устройство не заработает так, как вам нужно.

  Не всегда допустимо включить устройство, не зная наверняка, правильно ли работает программа МК – в некоторых случаях могут произойти серьезные и дорогостоящие повреждения обвязки МК и другой аппаратуры. Иногда требуется проверить работу МК, не имея  вообще реально спаянной схемы и самого МК. В этих случаях рекомендуется использовать специальные программные средства – симуляторы. 

  Симулятор приблизительно моделирует на персональном компьютере (ПК) работу "прошитого" вашей программой МК и его обвязки – т.е. электронных компонентов, окружающих МК по схеме устройства. 

Кроме того, симуляторы позволяют: 

- останавливать программу, организуя точки останова; - выполнять программу по шагам;  - видеть, как именно происходит выполнение программы;  - наблюдать и изменять значения в регистрах МК; - наблюдать текущие значения переменных; - использовать виртуальные измерительные приборы;  - симулировать работу МК с обвязкой, включающей различные электронные компоненты и устройства;  - виртуально обмениваться информацией с терминалом на ПК;

- делать еще много полезного!

  Для начинающих наиболее удобен в работе компилятор Си для AVR   CodeVisionAVR  (или CVAVR).  Компилятор содержит очень понятный и мощный генератор начального кода программы по вашим потребностям в конфигурации периферии МК AVR – называется он CodeWizardAVR (будем называть его мастером).

 

 Рис. 6.1 – Окно мастера создания нового проекта

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

Затем  мастер создаст файл проекта .prj и файл  исходного текста программы на языке Си с расширением .c – в нем уже будет содержаться код на Си, конфигурирующий МК по сделанному вами "заказу". Вам нужно будет добавить лишь код, реализующий нужный вам алгоритм работы устройства.

Используйте этот мастер и далее по ходу работы программы – точно так же как и в начале, но не генерируйте новые файлы, а просто откройте меню "Program Preview" и посмотрите нужный кусок программы на Си, возьмите, что вам нужно и вставьте в вашу программу.

  Компилятор CodeVisionAVR  имеет и встроенный программный модуль  для прошивки МК и конфигурационных ячеек (Fuse Bits - фьюзов) прямо в схеме. Фьюзы расположены в отдельном адресном пространстве, доступном только при программировании.

  Для  полного цикла разработки устройства достаточно только одного компилятора CodeVisionAVR. В компиляторах есть отличные примеры программ на Си для наиболее часто встречающихся задач на МК. В CodeVisionAVR примеры находятся в папке CVAVR\Examples. Примеры – это исходные тексты программ на Си для управления периферией МК и интерфейса с популярными внешними устройствами. Исходники снабжены подробными комментариями. Комментарии – это то, что написано после двух косых черточек // – в одну строку, либо между  /*  и  */  – в одну или несколько строк. 

Вы инсталлировали компилятор Си для AVR CodeVisionAVR и получили  файл-прошивку для МК. Естественно, хотите узнать – будет ли прошивка, а значит ваша программа, работать в МК так, как вам нужно. Для этого удобно использовать специальные программы для ПК, называемые симуляторами.  Вы можете проверить работу не только программы, загруженной в модель МК, но и работу модели целого электронного устройства!

Установите на ПК симулятор для AVR   –  VMLAB. В поставку VMLAB включено множество примеров программ и прошивок для немедленной симуляции-эмуляции устройства с МК. Примеры находятся в папках:  Tutorial  и  AVR_demo. Есть пример работы VMLAB с CodeVisionAVR. Откройте файл проекта C:\VMLAB\AVR_demo\codevisi.prj и посимулируйте. При симуляции вы увидите движение по исходному тексту программы на Си, и можете расставлять точки останова программы, наблюдать за изменениями значений в регистрах МК, посмотреть осциллограммы сигналов на ножках МК и многое другое.  

На симуляторе VMLAB мы будем проверять работу программы для разрабатываемого устройства.  Файл-прошивку для МК (расширение  .hex), созданный в компиляторе, будем прогонять в симуляторе МК с внешними компонентами и смотреть, что работает, что нет, и как работает. При необходимости будем корректировать исходный текст программы на Си, опять компилировать, и так по кругу до достижения правильной работы устройства. Этот процесс и называется отладкой программы.