roboforum.ru

Технический форум по робототехнике.


Программирование на С/C++ для ARDUINO

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Программирование на С/C++ для ARDUINO

Сообщение aged » 24 ноя 2014, 14:51

Пробовал кто-нибудь программировать для ARDUINO на языке С/C++?

Мне то уже за полтинек, а вот сыну потом переучиваться.)))
Я так понимаю, нужен какой-то компилятор и еще какая-то програмулина для прошивки ARDUINO?
Есть у кого ссылки?))
aged
 
Сообщения: 5
Зарегистрирован: 13 ноя 2014, 15:46

Re: Программирование на С/C++ для ARDUINO

Сообщение Angel71 » 24 ноя 2014, 15:13

ардуину и так на сях программируют. если хочется прям без ардуиновских штучек, так там на плате обычная мега установлена. ищите, напримерн "программирование avr" и смотрите что и как.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Программирование на С/C++ для ARDUINO

Сообщение elmot » 24 ноя 2014, 16:17

а лучше сразу 32битник взять из ARMов, чтоб потом не переучиваться. у ST Microelectronics море отличных плат для обучения. Линейки STM32-ЧЕГО_НИБУДЬ-DISCOVERY и nucleo-чего-нибудь. Последняя из них еще и совместима с шилдами для ардуины. Писать на С или С++, в KEIL или IAR или CoIDE.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Программирование на С/C++ для ARDUINO

Сообщение Dmitry__ » 24 ноя 2014, 21:50

aged писал(а):Пробовал кто-нибудь программировать для ARDUINO на языке С/C++?

Пробовал, очень хорошо получается. Имя ему: GCC.
Все что нужно - создать makefile. В этом поможет какой-нибудь автоматический генератор.
http://ed.am/dev/make/arduino-mk

Для старта взять проект grbl, он как-раз и написан на чистом С/C++ на базе железа arduino. Как IDE использовать Geany, там же можно настроить и программатор и/или использовать командную строку.
Как это одолеете, все другие варианты программинга покажутся туфтой. Есть один GCC/IDE на все процессоры: avr/8751/msp430/blackfin/arm/x86 и.т.д. и.т.п. Отчисления за супер-пупер компилятор - себе в карман, крякания/воровство гнилых IDE идут лесом :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Программирование на С/C++ для ARDUINO

Сообщение aged » 25 ноя 2014, 08:55

Всем спасибо.)

Dmitry__ а можно по подробнее для Чайников с кривыми руками, не знающих англ. язык и не врубающихся в местный слэнг. :wink:

С чего начать?
Все, что я смог сделать - скачал программы Dev C++ 4.9.9.2. и Greani 1.24.
Есть какая-нибудь литература по начальному обучению работе на них?
Где можно взять проект grbl?
Как его перенести на Arduino?

Понимаю, что слишком много вопросов. :oops:
Прошу хотя бы кратко описать.
aged
 
Сообщения: 5
Зарегистрирован: 13 ноя 2014, 15:46

Re: Программирование на С/C++ для ARDUINO

Сообщение Duhas » 25 ноя 2014, 09:01

можно поставить Atmel Studio, там как я понимаю тот же GCC и все бесплатное. ну и симуль есть.. хотя в более старых студиях он был вроде бы полноценнее.
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Программирование на С/C++ для ARDUINO

Сообщение Dmitry__ » 25 ноя 2014, 22:28

aged писал(а):С чего начать?

Какая у вас ОС? Если венды, то все очень жестко через cygwin или virtualbox. С вендами не советчик я. Весь мой опыт с gcc в вендах - переползание под линух :cry:

aged писал(а):Все, что я смог сделать - скачал программы Dev C++ 4.9.9.2. и Greani 1.24.

Не знаю кто это такие. Я говорил про GCC (можно погуглить gcc for windows) и Geany: http://www.geany.org/. Под венды есть хорошая замена geany: notepad++

aged писал(а):Где можно взять проект grbl?

Первая ссылка в яндексе :cry:
https://github.com/grbl/grbl
Там справа кнопочка "download zip"
aged писал(а):Как его перенести на Arduino?

Его не нужно переносить, по умолчанию он работает на arduino с atmega328. В файле config.h: "#define CPU_MAP_ATMEGA328P_TRADITIONAL // Arduino Uno CPU". Под толстую дуину надо смотреть в исходниках поиском "атмега2561" или как ее там? :)

Добавлено спустя 4 минуты 26 секунд:
Duhas писал(а):можно поставить Atmel Studio, там как я понимаю тот же GCC и все бесплатное. ну и симуль есть.

Нужна обработка makefile, все эти Atmel Studio и другие пупер иде прячут в себя всю компиляцию, говоря своему тупому юзеру: "не нужно это тебе, наша команда спецыалистов знает что тебе нужно" :)

Добавлено спустя 4 минуты 5 секунд:
ЫЫЫЫЫЫ, geany под венды оказывается есть, не знал...

Добавлено спустя 3 минуты 13 секунд:
Ой, только нужен GTK+ runtime for Windows, думаю все это сложно и глючно (как cygwin). Лучше notepad++

Вот еще почитать:
http://code.google.com/p/uos-embedded/wiki/gcc_avr_ru
Ссылка из:
http://roboforum.ru/forum2/topic13582.html?style=8
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Программирование на С/C++ для ARDUINO

Сообщение loox » 02 дек 2014, 02:20

Хотел бы заметить, что ПРОГРАММИРОВАНИЕ как предмет не имеет ничего общего с КОДИРОВАНИЕМ, всякие там с++ API, языки программирования, компиляторы и прочая ерунда.
Нонче всякие умники считают себя программистам, зная некоторые основы какого либо языка написания программ и смело раздающие всевозможные рекомендации и советы.
На самом деле все равно какими инструментами пользоваться при решении задач - ВАЖЕН результат (для начинающего).
Среда написания программ Arduino не очень дружественная, но вполне сносная и пользуется огромным успехом.
Фантастическое количество программ, форумов, сайтов посвящено Arduino.
Если "новичок" успешно освоит написание программ в этой среде, то дальнейшее его продвижение на другие платформы уже не составит никакого труда...
С уважением Loox.
loox
 
Сообщения: 326
Зарегистрирован: 26 мар 2008, 12:45

Re: Программирование на С/C++ для ARDUINO

Сообщение Dmitry__ » 02 дек 2014, 03:07

loox писал(а):Если "новичок" успешно освоит написание программ в этой среде, то дальнейшее его продвижение на другие платформы уже не составит никакого труда...

Да, да, да. А потом появляются статьи, типа: "лечимся от ардуинозависимости вместе", "Я презираю Arduino".
http://habrahabr.ru/post/123791/
http://habrahabr.ru/post/146489/

loox писал(а):Фантастическое количество программ, форумов, сайтов посвящено Arduino.

Фантастическое количество свистелок и перделок, которые не являются программами, ибо printf "lalala"; delay(1000) - это очень професиАНАЛНО. Кто раз использовал delay, программистом уже не станет никогда.
А это ваще ППЦ:
http://habrahabr.ru/post/141442/
И все нормальные вещи под железо дуины написаны в не ИДЕ дуины, к чему бы это???
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Программирование на С/C++ для ARDUINO

Сообщение Duhas » 02 дек 2014, 06:59

Dmitry__ писал(а):Нужна обработка makefile, все эти Atmel Studio и другие пупер иде прячут в себя всю компиляцию, говоря своему тупому юзеру: "не нужно это тебе, наша команда спецыалистов знает что тебе нужно" :)

ага, начинающим надо сразу моск makefile-ом отрывать? нах нах нах, имхо..

Добавлено спустя 1 минуту 59 секунд:
Dmitry__ писал(а):Кто раз использовал delay, программистом уже не станет никогда.

правильно, надо так
Код: Выделить всёРазвернуть
ldi R16, 0
dec r16
brne PC-1
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Программирование на С/C++ для ARDUINO

Сообщение Dmitry__ » 02 дек 2014, 07:38

Duhas писал(а):правильно, надо так:
ldi R16, 0
dec r16
brne PC-1

Гыыыыыыы, раз программер :D
Задержки в реальных программах нельзя делать через расход машинного времени контроллера, ибо в это время замерзают все другие задачи. А прерывания еще и вносят ошибку времени delay. Только через настройку timeout...
Вот и получаются программы как в анекдоте: "Папа, расскажи, что такое многозадачность? – Вот сейчас дискетку доформатирую и расскажу…"

Добавлено спустя 3 минуты 3 секунды:
Duhas писал(а):ага, начинающим надо сразу моск makefile-ом отрывать? нах нах нах, имхо..

А ты попробуй :wink:
Захочешь ли ты потом лазить по меню разных иде в поисках линковщиков, типов процессора, флагов оптимизации, путей библиотек. и.т.д. и.т.п.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Программирование на С/C++ для ARDUINO

Сообщение Duhas » 02 дек 2014, 07:44

ну все зависит от разумности применения. особенно если задержка мелкая ) те же 10 тактов для установки данных на линии и т.д.

надо просто четко различать критичный к таймингам вещи и не критичные )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 10