Программировать микроконтроллеры AVR можно различными способами. Существует огромное количество компиляторов для различных языков высокого уровня, есть ассемблер и даже графические языки. Но наиболее оптимальным решением является разработка программы на языке С.
Существует немало С компиляторов для AVR, наиболее распространенные среди них это: AVR GCC в составе Atmel Studio, IAR и CodeVisionAVR.
CodeVisionAVR представляет собой IDE (интегрированную среду разработки), которая включает в свой состав собственно сам компилятор языка С для микроконтроллеров AVR, текстовый редактор, менеджер проектов, большое количество программаторов и многое другое.
Наиболее интересен для новичка CodeWizard — мастер автоматической генерации программного кода. Он позволяет в автоматическом режиме подготовить заготовку проекта с настроенной периферией и прерываниями!
Также в последних версиях появилась возможность загрузки прошивки непосредственно в платы Arduino. Что тоже весьма удобно при макетировании устройств.
Рассмотрим процесс создания проекта в CodeVisionAVR.
Первым делом запускаем программу из меню Пуск или любого другого доступного источника.
Рисунок 1 - Окно приветствия программы.
Далее наблюдаем вполне привычный для Win приложений дружественный оконный интерфейс.
Рисунок 2 - Окно программы без лишних наворотов.
Для того, чтобы создать новый проект необходимо выполнить команду меню File\New\Project.
Рисунок 3 - Создаем проект.
Далее появится непристойное предложение мастера автоматической генерации программного кода, от которого мы естественно откажемся! Для этого в окне Confirm жмем кнопку No!
Рисунок 4 - Нажать No!
После чего появится диалог Create New Project, в котором следует указать путь и имя для сохранение нового проекта. Имя проекту следует давать исключительно на ангийском. Для начала назовем проект именем "New".
Рисунок 5 - Сохраняем новый проект.
В следующем диалоговом окне производятся предварительные настройки проекта. В поле Device Selection из списка Name выбираем целевой микроконтроллер. Пускай это будет любимый всеми нами ATtiny13. В поле для ввода C Source File вводим имя файла программы. Рекомендуется назвать его main.c, в дальнейшем так будет проще ориентироваться в проекте. Если дать одинаковое имя программе и проекту, могут возникнуть некоторые ошибки в работе линкера!
Рисунок 6 - Предварительные настройки проекта.
Очередной раз жмем кнопку ОК и ждем некоторое время, пока CodeVisionAVR все это переварит и создаст необходимые для его работы папки и файлы.
В завершении всего появится диалог конфигурации проекта. В нем для первого раза достаточно указать тактовую частоту процессора.
Рисунок 7 - Конфигурация проекта.
Для того, чтобы указать тактовую частоту процессора следует переключиться на вкладку C Compiler и в поле для ввода Clock ввести частоту. Для ATtiny13 с заводской конфигурацией Fuse битов вводим 9,6MHz. Остальные настройки пока не трогаем! Очередной раз жмем ОК.
Рисунок 8 - Настраиваем частоту процессора.
И вот он долгожданный результат! Можно писать первую программу для Вашего микроконтроллера. А собственно, заготовка программы уже готова.
Рисунок 9 - Можно писать Ваш код!
Обратите внимание, что в окне текстового редактора кроме вкладки с программой (main.c) появилась вкладка Notes. Это файл аннотации к проекту. Закрывать его не следует — это закроет весь проект. Программный код в нем не пишут.
В принципе, проект можно компилировать, не смотря на то, что он не выполняет ни каких видимых действий. Для этого выполняем команду меню Project\Build All. В результате чего появится окно Information. В нем можно увидеть информацию о результате компиляции проекта: размер прошивки, количество ошибок и предупреждений, и многое другое.
Рисунок 10 - Компиляция проекта.
Рисунок 11 - Информация о компиляции проекта.
И на по следок давайте заглянем в папку с проектом
Рисунок 12 - Папка проекта.
Пока в этой папке нас интересует только следующее:
Файл с разрешением *.cof для отладки программы в ISIS Proteus или AVR Studio.
В папке Debug\Exe файл с разрешением *.HEX представляет собой прошивку для МК. Именно его и нужно загружать в микроконроллер с использованием программатора.