Atmel studio для начинающих

Atmel studio для начинающих

Урок 2

Сегодня мы научимся создавать проекты в среде программирования Atmel Studio. Делается это не очень сложно.

Запускаем Atmel Studio.

Если Вы запускаете Atmel Studio в первый раз, у Вас скорее всего появится сначала стартовое окошко, которое можно свободно отключить, сняв галочку создадим новый проект с помощью команды меню File -> New -> Project

У нас откроется диалог, в котором будет 5 вариантов проектов на C/C++, один вид проекта на ассемблере, а также есть вариант создание пустого решения, в которое уже потом добавлять проекты. Мы будем писать именно на языке C. С помощью кнопки "browse" в данном диалоге мы выбираем папку, в которой будем создавать свои проекты, выберем вариант проекта "GCC C Executable Project", дадим проекту имя, например "Test01". Галочка слева от надписи "Create directory for solution" означает, что будет создаваться папка для проекта, то есть данную папку заранее создавать не нужно. Нажмем "OK"

В следующем диалоге выберем наш контроллер Atmega8A, впечатав это в соответствующем окошке. Мы видим здесь справа также несколько интересных вещей, в том числе Datasheet на наш контроллер (ссылка на техническую документацию), который мы отсюда спокойно можем скачать.

Здесь мы также нажимаем "OK"

Проект создан. Мы должны увидеть окно с проектом приблизительно следующего вида

Теперь немного настроим наш проект.

Зайдём в его свойства с помощью меню Project -> Test01 Properties

Затем в открывшемся диалоге перейдём во вкладку Tool и выберем там в качестве отладчика Simulator, а если у кого поддерживатеся программатор в качестве отладчика, то свой программатор. Мой программатор не может выступать в качестве отладчика, так как нет драйвера для Atmel Studio. В свойствах проекта есть огромный ряд настроек (настройки оптимизации, включение операций с плавающей точкой и т.д.), которые мы рассмотрим в более поздних занятиях. А пока нажмём кнопку "сохранить всё" в панели управления в виде нескольких дискет (на картинку можно нажать для увеличения)

После сохранения закроем вкладку с настройками и немного поиграемся с текстом главного файла Test01.c. Прежде чем удалить оттуда ненужный комментарий сверху, мы заодно и поучимся, но а если кто знает, тот повторит, как пишутся комментарии в языке C. Чтобы написать многострочный комментарий, необязательно обозначать значком комментария каждую строчку. Достаточно вначале поставить обычный слеш (черточку, наклоненную вправо) и звездочку, а в конце блока с текстом комментария — наоборот — сначала звездочку, а затем обычный слеш и блок наш в данной среде программирования сразу отметится зелёным цветом, то есть станет комментарием и компилятор при сборке проекта обрабатывать данный текст не будет. Данный вид обозначения комментария ещё может пригодиться для обзначения комментарием не всей сторки, а её части, если мы хотим отметить комментарием часть строки не до её конца. Комментарии удобны в практике программирования тем, что мы указываем, что именно мы хотим добиться кодом, который обозначен комментарием, что, во-первых, не даёт нам забыть, что мы именно хотели сделать кодом, а также служит объяснением тому, кто будет наш код затем читать и изучать. Вот как раз пример комментария в нашем файле проекта

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

Теперь другой вид комментария. Если мы хотим написать комментарий в виде одной строки, то целесообразно отметить этот комментарий специальным значком в виде двух обычных слешей, предназначенных именно для обозначения однострочного комментария. Данный значек ставится вначале строки и действует до конца строки. У нас также есть с вами для этого уже пример в коде. Здесь среда нам подсказывает, где именно следует начинать писать свой код

Читайте также:  8 Канальный hda кодек realtek alc887

Данный комментарий можно будет также удалить.

Теперь давайте попробуем откомпилировать наш проект (или как ещё говорят в народе "соберём его", так как проект данным действием не только компилируется, но ещё и линкуется). Делается это следующим образом. Либо нажимаем соответствующую кнопку в панели инструментов, либо нажимаем функциональную клавишу "F7". После этого действия, если сборщик проекта не встретит никаких ошибок, то мы получим в нижней части нашей среды программирования определённое сообщение

Также в папке "Test01Debug" нашего проекта у нас будет сгенерирован исполняемый файл, или как в народе говорят — прошивка — файл "Test01.hex". Данный файл мы и будем "заливать" в наш контроллер впоследствии. Для этого нам конечно надо будет научиться писать какой-то полезный код. Этим мы займёмся уже на следующем занятии.

Урок 2

Сегодня мы научимся создавать проекты в среде программирования Atmel Studio. Делается это не очень сложно.

Запускаем Atmel Studio.

Если Вы запускаете Atmel Studio в первый раз, у Вас скорее всего появится сначала стартовое окошко, которое можно свободно отключить, сняв галочку создадим новый проект с помощью команды меню File -> New -> Project

У нас откроется диалог, в котором будет 5 вариантов проектов на C/C++, один вид проекта на ассемблере, а также есть вариант создание пустого решения, в которое уже потом добавлять проекты. Мы будем писать именно на языке C. С помощью кнопки "browse" в данном диалоге мы выбираем папку, в которой будем создавать свои проекты, выберем вариант проекта "GCC C Executable Project", дадим проекту имя, например "Test01". Галочка слева от надписи "Create directory for solution" означает, что будет создаваться папка для проекта, то есть данную папку заранее создавать не нужно. Нажмем "OK"

В следующем диалоге выберем наш контроллер Atmega8A, впечатав это в соответствующем окошке. Мы видим здесь справа также несколько интересных вещей, в том числе Datasheet на наш контроллер (ссылка на техническую документацию), который мы отсюда спокойно можем скачать.

Здесь мы также нажимаем "OK"

Проект создан. Мы должны увидеть окно с проектом приблизительно следующего вида

Теперь немного настроим наш проект.

Зайдём в его свойства с помощью меню Project -> Test01 Properties

Затем в открывшемся диалоге перейдём во вкладку Tool и выберем там в качестве отладчика Simulator, а если у кого поддерживатеся программатор в качестве отладчика, то свой программатор. Мой программатор не может выступать в качестве отладчика, так как нет драйвера для Atmel Studio. В свойствах проекта есть огромный ряд настроек (настройки оптимизации, включение операций с плавающей точкой и т.д.), которые мы рассмотрим в более поздних занятиях. А пока нажмём кнопку "сохранить всё" в панели управления в виде нескольких дискет (на картинку можно нажать для увеличения)

После сохранения закроем вкладку с настройками и немного поиграемся с текстом главного файла Test01.c. Прежде чем удалить оттуда ненужный комментарий сверху, мы заодно и поучимся, но а если кто знает, тот повторит, как пишутся комментарии в языке C. Чтобы написать многострочный комментарий, необязательно обозначать значком комментария каждую строчку. Достаточно вначале поставить обычный слеш (черточку, наклоненную вправо) и звездочку, а в конце блока с текстом комментария — наоборот — сначала звездочку, а затем обычный слеш и блок наш в данной среде программирования сразу отметится зелёным цветом, то есть станет комментарием и компилятор при сборке проекта обрабатывать данный текст не будет. Данный вид обозначения комментария ещё может пригодиться для обзначения комментарием не всей сторки, а её части, если мы хотим отметить комментарием часть строки не до её конца. Комментарии удобны в практике программирования тем, что мы указываем, что именно мы хотим добиться кодом, который обозначен комментарием, что, во-первых, не даёт нам забыть, что мы именно хотели сделать кодом, а также служит объяснением тому, кто будет наш код затем читать и изучать. Вот как раз пример комментария в нашем файле проекта

Читайте также:  Backspace где эта кнопка

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

Теперь другой вид комментария. Если мы хотим написать комментарий в виде одной строки, то целесообразно отметить этот комментарий специальным значком в виде двух обычных слешей, предназначенных именно для обозначения однострочного комментария. Данный значек ставится вначале строки и действует до конца строки. У нас также есть с вами для этого уже пример в коде. Здесь среда нам подсказывает, где именно следует начинать писать свой код

Данный комментарий можно будет также удалить.

Теперь давайте попробуем откомпилировать наш проект (или как ещё говорят в народе "соберём его", так как проект данным действием не только компилируется, но ещё и линкуется). Делается это следующим образом. Либо нажимаем соответствующую кнопку в панели инструментов, либо нажимаем функциональную клавишу "F7". После этого действия, если сборщик проекта не встретит никаких ошибок, то мы получим в нижней части нашей среды программирования определённое сообщение

Также в папке "Test01Debug" нашего проекта у нас будет сгенерирован исполняемый файл, или как в народе говорят — прошивка — файл "Test01.hex". Данный файл мы и будем "заливать" в наш контроллер впоследствии. Для этого нам конечно надо будет научиться писать какой-то полезный код. Этим мы займёмся уже на следующем занятии.

Урок 2

Настало время написать первую программу для нашего микроконтроллера!

Для выполнения данного урока, Вам пригодится:

  1. Микроконтроллер (Подойдет почти любой микроконтроллер семейства AVR, однако , лучшим выбором по соотношению цена/функционал станет AtMega8).
  2. Светодиод (Так же любой, однако при покупке уточните его номинальный ток, и падение напряжения).
  3. Резистор (Какой именно, рассчитаем далее).
  4. Программатор.
  5. Провода соединительные.
  6. Источник питания 5v.
  7. Плата макетная (Для Вашего удобства).

Начнем с написания прошивки.

Прошивка(Программа) — Набор инструкций(команд) микроконтроллера, представленный в виде конечного файла(специального формата), используемого в дальнейшем при работе контроллера.

1.Открываем Atmel Studio, создаем проект на языке AVR C или AVR ASSEMBLER и выбираем модель Вашего микроконтроллера.

В окне редактора исходного кода пишем:

Нажимаем Build->Build Solution. После выполнения данных операций, в папке проекта появится файл формата .hex. Это и есть наша прошивка!

2.Далее, собираем следующую схему:

Резистор R1 необходим для ограничения тока протекающего через светодиод LED1.

Например, возьмем светодиод с напряжением питания 2.2В и током питания 10 мА(0.01А). Напряжение питания соответственно равно 5В.

Согласно приведенной выше формуле, получим:

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

Читайте также:  16 Bit ms dos subsystem windows 7

В данном случае берем резистор стандартного значения 330 Ом.

А теперь настало время вдохнуть жизнь в нашу схему!

3.Подключаем программатор к контроллеру, и записываем в его память прошивку полученную выше.

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

Вернув контроллер на его место в схеме(Разумеется, если Вам пришлось его отсоединить), подаем 5v питания на контроллер.

Если все сделано верно, вы увидите что светодиод зажигается и гаснет с постоянной частотой.

Поздравляем, Вы только что собрали Ваше первое устройство с использованием микроконтроллера!

Если что то не получилось, то Вы всегда можете написать об этом в комментариях к данной статье!Наша команда всегда готова ответить на все Ваши вопросы!

Спасибо за внимание!

Копирование, воспроизведение, цитирование данного материала или его частей разрешено только с письменного разрешения администрации сайта MKPROG.RU.

Похожие статьи

AVR для начинающих.Урок 2.Hello world : 11 комментариев

Очень интересная статья.она расчитана на людей,знающих С и asm?если нет,не мешало бы объяснить чайникам принцип написания кода.а так же при написании статьи о конкретном устройстве ,в ее начале следовало бы указать,какое именно устройство будет описано ниже.т е какие функции и задачи оно будет выполнять.мне бы было проще знать заранее,что должно получиться на выходе.надеюсь,взгляд со стороны будет хоть сколько нибудь полезен.

Добрый день.
Основы языка C и ассемблера для микроконтроллеров AVR, будут представлены в виде уроков в ближайшее время!
Функции и задачи технических устройств, разрабатываемых в рамках данных статей несут по большей части обучающий характер.Разумеется, когда мы перейдем к более сложным устройствам, их функции и задачи будут описаны более подробно.
Спасибо за отзыв!

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

В ближайшее время будет цикл уроков по Proteus, оставайтесь с нами.
Огромное спасибо за замечание, обязательно учтем!

Неужели нет никаких библиотек для работы не на прямую с регистрами? Если есть, подскажите их названия, пожалуйста.

Доброго Вам здравия!
Что Вы подразумеваете под работой напрямую с регистрами? Ведь кодом на С и ASM мы итак работаем непосредственно с регистрами.
Если Вы имеете ввиду вызов готовых функций тогда обратите Ваш взгляд на контроллеры STM32 и библиотеку SPL
уроки по ним здесь:
http://mkprog.ru/category/mikrokontrollery-stm32

Либо, присмотритесь к платформе Arduino, однако по ней в данный момент не могу дать квалифицированной консультации.

Отличная вводная статья, не хватает абзаца про то, как залить прошивку в МК

Согласен с Антоном. Не помешало бы упомянуть про подключение программатора к контроллеру и фьюзы при прошивке. А то новички ненароком залочат контроллер. На пример отключат ISP.

Спасибо, постараюсь сделать

До этого быдлокодил в кодвижине. Заинтересовался асмом, и вот что то меня смутило в Вашем примере на асме. Копи паста в студию, билд и ран, а оно мне говорит : 3 ошибки, нет таких слов как DDRC и PORTC. вставил .include «m8def.inc» и все заработало. Неужели этого еще ни кто не заметил. Или у меня студия корявая, что без инклюдов не работает? 🙂
С уважением.

Здравствуйте.
При создании проекта в Atmel Studio 7 (Может и в более ранних) и выборе целевого контроллера данный файл подключается автоматически
Однако, спасибо за замечание.

Ссылка на основную публикацию
Adblock detector