Как бы это странно не звучало, но я никогда в жизни не использовал фирменную софтину от Atmel для написания прошивок. Изначально пользовался Eclipse, но в связи с тем, что для CodeVision было больше примеров, то до сих пор с ним и работал. Но все же интерес перевесил и я решил узнать, так ли страшен Atmel Studio как его малюют 🙂 Для простоты можно мигнуть светодиодом, заодно и описать впечатления.

studio

Первое что бросается в глаза дизайн унаследованный от Visual Studio, не знаю кому как, а мне он привычен и рвотных позывов не наблюдается. Далее стандартная процедура File-New project. С типом проекта тоже никаких заморочек, микроконтроллер 8 битный, аргументов против GCC тоже никаких не имеется 🙂

projectmain

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

chooseyourdestiny

Сгенерился пустой проект, заголовочный файл немного отличается от CodeVision, но в целом это ничуть не смущает.

#include <avr/io.h>
int main(void)
{
while(1)
{
 
}
}

Первое куда я полез — искать где настраивается частота камня, полазил в настройках нигде нет. Очевидно настраивается в коде проекта, в конце концов так и оказалось. Непривычно.

#define F_CPU 8000000
#include <avr/io.h>

Название библиотеки задержек гуглится просто util/delay.h. Очень удобным показалось, то что при наборе кода предлагается автодополнение. После Visual C# этой штуки жутко не хватает в CAVR. В итоге за 5 минут набросал кусочек кода

#define F_CPU 8000000
 
#include <avr/io.h>
#include <util/delay.h>
 
int main(void)
{
DDRB=0xFF;
PORTB=0x00;
 
while(1)
{
PORTB=0x01;
_delay_ms(200);
PORTB=0x00;
_delay_ms(200);
}
}

Протеус подтвердил работоспособность прошивки.
proteus_astudio

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

ЗЫ ради прикола сравнил размер такой же прошивки в CAVR, оказалось что GCC сгенерил Hex вполтора раза меньше O_o.

58 комментариев: Работа с Atmel Studio 6

  • Ну это логично. Без цикла программа просто отработала раз и закончилась.

  • Не знал куда написать, поэтому пишу сюда. Как сделать так чтобы прерывание таймера по совпадению с B не прерывало прерывание по совпадению с A? Прерывание А выполняется по времени меньше чем B. Т.е. как заставить эти два прерывания работать вместе? А то получается что во время работы прерывания по В не работает прерывание по А.

  • Документация на ATtiny2313, страница 48, раздел 6.1. Черным по белому написано, что прерывание по Т0 COMPA имеет выше приоритет чем В. В таблице это 14 и 15 вектора. Еще вопросы есть?

  • Да, почему в моём случае наоборот и может ли одно прерывание прервать другое?

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

  • Вроде ж в авр вложенные прерывания по умолчанию запрещены при входе в обработчик аппаратно включается глобальный запрет прерываний (сбрасывается флаг I в SREG). А уже при выходе — прерывания разрешаются (устанавливается флаг I). Если надо вложенные прерывания — то при входе в обработчик нужно их глобально разрешить командой sei();

  • ether, огромное спасибо!

  • В нный раз обращаюсь к вам за помощью, так вот: как убрать вот такой ворнинг, который появляется при инициализации массива в atmel studio 6
    extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
    погоды он не делает, но глаза мозолит…

  • Вопрос снят

  • Отладка проектов CVAVR в AVR Studio 6 как AVR Studio 4 есть? Если есть, то где? Заранее спасибо.

  • Я уже давно перестал следить за обновками CAVR, в последний раз, около года назад можно было вынуть из CAVR coff файл и открыть его в AS6, но помоему оно работало через одно место. Как сейчас все изменилось не могу сказать.

  • Хорошо, а устанавливать вместе AVR Studio 6 и AVR Studio 4, можно? И пользоваться чем нужно?

  • Андрей, смотря с сегодняшней позиции, в пользу AS6
    за:
    Крупными проектами я бы несомненно стал бы заниматься в AS, мне нравится его редактор, мне понравилось как просто добавлялись проекты LUFA, нравится то что он бесплатный, код оптимизируется лучше чем в CAVR.

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

    Под avr studio4 я не писал, поэтому ничего не могу сказать, зато все эти годы я им пользовался как прошивайкой, это в нем работает просто замечательно. Для проверки идей мне хватает обрезанного CAVR

  • Atmel Studio 6 сильно отличается от ее же 7ой ?

  • 7 не доводилось пользоваться

  • Здравствуйте.
    Вот я, «почесавши репу» и собрав металлодетектор, задумался над возможностью обучения программирования для составления прошивок.
    Ну а перед началом реализации сей задумки открыл уже отработанные прошивки (в AtmelStudio) и задумался над содержимым. открылись 2 колонки слева-символы, иногда даже читаемые и несущие смысл, справа -строки: адрес строки и набор символов, скорее всего в шестнадцатиричной системе кодирования. Меняю содержимое строки в правой колонке, вижу, происходящие в связи с этим изменения в символах левой колонки.
    Однако! Каждая строка кода заканчивается кодом какого-то символа, которая, наверное, является проверочной? По крайней мере попытка поставить «абы-чо» реагируется красным цветом.
    Вот что это такое?
    Где бы про это прочитать?
    И как бы сделать правильно?

  • почитайте про hex формат в гугле

  • «GCC сгенерил Hex вполтора раза меньше»
    Потому, что код GCC голый, а CV в шапке программы делает довольно полезные вещи.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Свежие записи
Последние комментарии
  • Загрузка...
Счетчик
Яндекс.Метрика