Рыбку хотя бы посеребренную или позолоченную ?
- Войдите на сайт для отправки комментариев
Чт, 22/06/2017 - 00:13
Можно ли не уходя от ардуиновского функционала выбора плат и библиотек, пользоваться какой-либо чуть более удобной IDE, хотя бы на несколько шагов ближе к Atmel Studio ?
Нужна удобная доступность внесения изменений в опции компилятора, возможно пользовательские профили, работа с фьюзами и битлок и хотя бы минимальные возможности отладки ...
Bootloader arduino тоже удобен, но не принципиален.
Можно ли не уходя от ардуиновского функционала выбора плат и библиотек, пользоваться какой-либо чуть более удобной IDE, хотя бы на несколько шагов ближе к Atmel Studio ?
Можно. Самой Atmel Studio с расширением для Ардуино.
Visual Studio Community + Visual Micro
Где почитать подробнее про расширения для Ардуино и их установку на Atmel Studio? Это вживляемые плагины?
Если используете расширения Arduino для AS , расскажите пожалуйста об их удобствах и проблемах.
http://we.easyelectronics.ru/AVR/rasshireniya-atmel-studio-6.html
https://geektimes.ru/post/284352/
http://sainquake.com/?p=464
http://forum.amperka.ru/threads/arduino-ide-for-atmel-studio-6.5740/
http://e-device.in.ua/arduino_c/
http://www.customelectronics.ru/programmirovanie-arduino-na-c-v-avr-studio/
http://we.easyelectronics.ru/AVR/rasshireniya-atmel-studio-6.html
Visual Studio это IDE. A Visual Micro - плагин именно для Ардуины.
Правда, он триальный, через месяц начнет надоедать окном, но я внимания не обращаю.
И. Arduino IDE все равно должна быть установлена.
Где почитать подробнее про расширения для Ардуино и их установку на Atmel Studio?
Ну, как бы в первоисточнике - на сайте atmel.com.
Мне интересно Ваше субъективное мнение - какие у "Visual Studio + Visual Micro" основные удобства по сравнению с IDE Arduino?
Спасибо, Вы сами используете эти расширения ?
Можете сравнить их с "Visual Studio + Visual Micro" ?
Мне интересно Ваше субъективное мнение - какие у "Visual Studio + Visual Micro" основные удобства по сравнению с IDE Arduino?
ты много видишь ползателей форума, юзающих "Visual Studio + Visual Micro"?
отож - объективное мнение.
отож - объективное мнение.
Нуууу... Мне по работе С# нужен, поэтому VS у меня уже стояла, бесплатная, редакции Community. Потом где-то прочитал про Visual Micro, прям из Студии ее поставил. С тех пор (больше полугода) Arduino IDE не запускал ни разу. Только Студию надо ставить с включенной галочкой С++, по умолчанию она выключена
Последовательность установки, сначала
Visual Studio Community (у меня 2015)
потом Ардуино IDE
а потом Visual Micro
Цветовая гамма настраиваеца как хочешь. Intellisence работает прекрасно.
Я про комплект "Visual Studio + Visual Micro" узнал несколько минут назад на форуме.
теперь по любому своему пуку будешь темы на форуме создавать?
Нуууу... Как бы абяснить. Это кабутта ты деревья один пилил двуручной пилой, и вдруг тебе бензопилу дали.
Единственно, что, эта связка не умеет комбинировать с и асм файлы, но я могу просто не владеть информацией, тогда пусть меня поправят.
А AVR Studio может это искаропки.
Intellisence не знаю что такое, а что удобного по функционалу по сравнению с IDE Arduino ?
Intellisence и есть главное удобство - то, что Вы не знаете что это такое - беда, но беда легко поправимая при желании.
Спасибо, Вы сами используете эти расширения ?
Можете сравнить их с "Visual Studio + Visual Micro" ?
Нет, конечно. Нафига? Цель-то такого использования какова?
Вопрос к уважаемому ЕвгенийП. Я ставил AVR Studio 7 с официального сайта, но без ардуиновского плагина. Не смог разобраться, как заливать прошивку в контроллер, не подскажете как?
AVR Studio 7 с официального сайта, но без ардуиновского плагина. Не смог разобраться, как заливать прошивку в контроллер, не подскажете как?
1. По уму - как задумано
Вообще-то студия заточена на использование родной атмеловской платы STK-500 (документация) для всех операций с контроллером. У меня она выглядит вот так:
Плата, к сожалению, недешёвая. У китайцев можно найти клон существенно дешевле, но всё равно дорого. Однако, рекомендую - Вы получаете прошивку всех атмеловских чипов в DIP (если купите STK-600, то и в TQFP) причем как последовательное программирование, так и параллельное. С последним Вы можете, например, назначить Reset как пин ввода-вывода и вообще не бояться ошибиться во фьюзах.
Сам я покупал напрямую у Atmel, т.к. совсем не понимал как ею пользоваться и хотел, в случае непоняток, быть уверенным, что проблема в кривости рук/мозгов, а не в кривости клона. Сейчас бы я купил клон.
Подключается она к компьютеру через RS232. Если у Вашего компьютера нет такого интерфейса (как у меня) то потребуется переходник с USB, но это копейки.
Как только Вы её подключите, Студия начнёт её распознавать, и Вы можете пользоваться диалогом прошивки в меню Tools. Вот так:
2. Через Альпы
Если нет специальной платы, то можно пользоваться обычным программатором и программкой типа avrdude.
Для того, чтобы студия по завершении компиляции автоматически прошивала Вашу программу в контроллер, нужно в свойствах проекта добавить т.н. Post Build Event. В качестве обработчика вставляете командную строку вызова avrdude, только вместо конкретного пути к прошиваемому файлу, ставите макрос студии. Вот так это выглядит:
То, что начинается со знака доллара - как раз те самые макросы.
При такой записи, студия будет сама прошивать Ваш девайс всякий раз после компиляции.
Ну, вот как-то так.
Думаю, что можно как-то ещё настроить, но меня эти два варианта устроили, нормально работают и больше я не разбирался.
Огромное спасибо, за подробный ответ. кину в закладки.
Второй вариант больше подходит, ибо дорогущая плата не нужна, я не этим деньги зарабатываю. Мои поделки обходятся ATTiny85, Atmega8 да 328, а их можно через Usb программировать да через другдруга. :)
Можно, только не параллельно.
Вот Вы сказали про ATTiny85. Я собственно эту плату купил, когда очень захотелось на ATTiny45 иметь 6 GPIO пинов. С помощью параллельного программатора я лекго превратил Reset в GPIO. Последовательным программатором такой фокус невозможен.
сколько надо прошить 85-х, с 6 ногами, чтоб окупить плату параллельного программатора?
У мня тиньки трудятся там, где ног много не надо, 1-2 датчика, 1-2 исполнительных устройства.
а где надо больше 5 ног - там я ставлю Micro на 328
установил атмел студию с плагином для ардуинки
очень удобная подсветка синтаксиса, авто дополнение кода ну всем хорош.
но есть недостатки... относительно долго загружается при старте программа и отсутствует возможность создать вкладки как в ардуино IDE
в итоге если чтото мелко типо блинка быстрее накидаю в IDE и загружу.
сейчас большой проект собираю но тоже остановися на родной иде так как разбил все по вкладкам. пишу в отсновном в notepad++ а потом переношу в иде и заливаю.
в итоге особо не пользуюсьатмел студией
отсутствует возможность создать вкладки как в ардуино IDE
Да, нет, Вы просто не умеете это делать.
Поставьте мышь на проект и правой кнопкой выберите "добавить айтем". Новый файл появится в дереве проекта. А вкладка вообще не при делах, Вы в любой момент может кликнуть на файл - вкладка откроется, а когда не нужна закрыть её "крестиком".
огоо спасибо большой за такой ответ, обязательно попробуй... и если все получится у меня перееду на атмел студию
плюсанул)))
Где взять программу ArduinoForAtmelStudio без интернет-установщика ?
Вот Вы сказали про ATTiny85. Я собственно эту плату купил, когда очень захотелось на ATTiny45 иметь 6 GPIO пинов. С помощью параллельного программатора я лекго превратил Reset в GPIO. Последовательным программатором такой фокус невозможен.
Евгений -совсем маленькое дополнение- у вас наверное мультиформатный программатор, потому что tiny85 шьётся только в режиме HVSP (высоковольтное последовательное программирование). И с обычным ISP ресет можно в ногу порта превратить, но обратно в ресет только высоковольтным :)
Высоковольтный программатор из Ардуино : http://arduino.ru/forum/apparatnye-voprosy/universalnyi-avr-programmator...
у вас наверное мультиформатный программатор,
Вы, навероне, пропустили начало диалога. Он начался с того, что у меня атмеловская плата STK-500 и я порекомендовал её коллеге.
отсутствует возможность создать вкладки как в ардуино IDE
Да, нет, Вы просто не умеете это делать.
Поставьте мышь на проект и правой кнопкой выберите "добавить айтем". Новый файл появится в дереве проекта. А вкладка вообще не при делах, Вы в любой момент может кликнуть на файл - вкладка откроется, а когда не нужна закрыть её "крестиком".
ставил на рабочем компе атмел студию и приложение для ардуинки. был затык что не появлялось окно для ввода папки со средой IDE(не добавлялся компонент в среду Atmel Studio). нашел решение тут http://forum.amperka.ru/threads/arduino-ide-for-atmel-studio-6.5740/
подскажите пожалуйсто какой файл нужно создать чтобы глобальные переменные и функции можно было видеть из главного во второстепенном и из второстипенного в главном.
или нужно както обьявить чтото типа этого?
#include "blink.h" #include "CPPFile1.cpp"
заранее благодарю за ответ....
Для простого программирования из студии можно использовать STK500v2 от Petka, простой, компактный и не стоит, как Зенит-Арена.
подскажите пожалуйсто какой файл нужно создать чтобы глобальные переменные и функции можно было видеть из главного во второстепенном и из второстипенного в главном.
или нужно както обьявить чтото типа этого?
#include "blink.h" #include "CPPFile1.cpp"
Ну, общее правило таково. В любом .cpp файле, все глобальные объекты (переменные, функции), которы НЕ должны быть видны из других файлов объявляются со словом static, а те, которые должны быть видны - без этого слова.
Затем для этого .cpp файла делается .h файл. В нём все объекты, которые должны быть видны снаружи объявляются со словом extrern.
После этого в любом другом .cpp файле в котором нужно видеть те объекты, просто включаете тот .h файл при помощи #include
ЕвгенийП, а что происходит с теми переменными из *.cpp, которые не помечены атрибутом static и не вынесены в соответствующий *.h файл?
Да, ничего не происходит. Доступны отовсюду. Объявляйте их в любом другом файле с атрибутом extern и "доступайтесь".
Только Вы-то это и без меня знаете, не понимаю для чего спрашиваете.
Ну не знаю. Вообще после #include " __.h", все переменые из .h уже видны в основной программе. И для того что бы убрать из файла .h лишние переменные их делают в static. A если в .h файле нужны внешние(внешие по отношению к .h) переменные то extern. Переменые в срр не видны нигде вне файла. Ведь обычно #include " __.cpp" не делают. Но делают в .сpp #include " __.h" и переменые из .h видны и в .ссp и в осноном файле. Ну где-то так. так что static надо писать для невидимых переменных только в .h файле.
так что static надо писать для невидимых переменных только в .h файле.
Простите, но Вы не правы.
Попробуйте и расскажете, что получилось.
Только Вы-то это и без меня знаете, не понимаю для чего спрашиваете.
Нет, Евгений, я программирую на разных языках, и С++ для меня не родной. Поэтому в общих чертах я его, конечно, себе представляю, а тонкости черпаю в основном из Ваших постов.
нужна консультация..
создал файл global.h
вот его содержимое
и global.cpp
компилятор выдает ошибку что переменная не определена в cpp файле,
а если пишу boolean flag = false; то все компилируется,
правильно ли я понял что надо 2 раза обьявлять переменную и в .h файле и в /cpp ?
Так, давайте Вы поймёте общий принцип:
Объявлять надо один раз - в cpp файле.
Запись с ключевым словом "extern" обявлением не является - это инофрмация о том, что где-то (в другом файле) переменная с таким именем и типом уже объявлена.
Поэтому, так как Вы делаете (когда работает) и надо делать.
Теперь немного о директиве #include - запомните, в ней нет ничего магического. Если Вы её уберёте, а вместо неё просто вставите копипастом содержимое того файла на который она указывает, ничего не изменится. Она именно это и делает - вставляет содержимое файла. Используется она для того. чтобы одинаковые куски кода вставлять в разные файлы. Это понятно?
Теперь смотрите примеры (в т.ч. и ошибочные).
Пример №2
Пример №3 (любимая ошибка новичков)
Пример №4 (ещё одна любимая ошибка новичков)
спасибо большое за разяснение, очень доходчего все разяснили.
я кстати кое что нашел по моему вопросу...
Спецификатор extern сообщает компилятору, что следующие за ним типы и имена переменных объявляются где-то в другом месте. Другими словами, extern позволяет компилятору знать о типах и именах глобальных переменных без действительного создания этих переменных. Когда два модуля объединяются, все ссылки на внешние переменные пересматриваются.
Если при объявлении выделяется память под переменную, то процесс называется определением. Использование extern приводит к объявлению, но не к определению. Оно просто говорит компилятору, что определение происходит где-то в другом месте программы.
.. а по вашему примеру последнему мне все понятно, про static читал, но за то что освежили в памяти тоже благодарен :)
плюсанул.....
и да не думали написать этюд на эту тему? довольно таки поучительно (очень не много инфы про атмел студию, и много вопросов не всегда есть на русском ответы, и видео в основно на забугорном) и у Вас хорошо получается....