Как запрограммировать ардуино на чистом C/C++?
Я новичок и хочу выучить AVR C/C++. Можно ли сделать это с помощью Arduino? (Я спрашиваю об этом, потому что он у меня уже есть).
Если да, то не мог бы кто-нибудь сказать мне, используя какую IDE я могу написать код на чистом C/C++, а затем прошить его на ATmega328P на Arduino? Или вместо этого надо иметь AVR и программатор?
Я искал по всему Интернету, и меня действительно смущает вся эта терминология. Кто-нибудь может мне это объяснить?
@SeeingRed, 👍10
Обсуждение3 ответа
Да, вместо этого возьмите программатор AVR.
1) Вы можете прошить свою плату arduino с помощью avrdude/avr-gcc. Установите эти инструменты, найдите техническое описание atmega328 (google it), используйте распиновку платы для подключения к вашему программатору (stk500v2/ISP) и вуаля!
2) Имейте в виду, что, "вручную" прошивая atmaga на плате arduino, вы удаляете загрузчик, необходимый для загрузки ваших скетчей из ARDUINO IDE.
3) Используйте свою любимую C/C++ IDE
вы должны быть в состоянии найти и перепрошить загрузчик для arduino посмотрите здесь http://arduino.cc/en/Hacking/Bootloader?from=Tutorial.Загрузчик, @Treesrule14
Нет! Вам не нужен ни программист, ни для удаления загрузчика. Загрузчик Arduino не зависит от IDE или библиотек - вы так же свободно можете использовать его с автономными программами на языке Си, как и с скетчами Arduino. Это не только дешевле, но и позволяет использовать одну и ту же плату для обоих стилей разработки без каких-либо изменений конфигурации., @Chris Stratton
Автор хотел изучить AVR на чистом C. Он не спрашивал - эй, ребята, как играть с arduino IDE или что-то в этом роде. но как повторно использовать atmega на борту у него уже есть., @soerium
@ChrisStratton поскольку вы не согласны с другими ответами, отправьте ответ, пожалуйста, @Treesrule14
Если вы новичок, я предлагаю вам написать C в Arduino IDE. Библиотеки очень полезны, и я думаю, что среда Arduino/проводки/обработки покроет все ваши потребности.
Посмотрите на Светло-голубой боб (http://punchthrough.com/bean/) это хороший пример мощи этой платформы. Даже опытные встроенные программаторы могут использовать его, так как базовый регистр все еще доступен.
Сейчас я программирую на Ti MSP430, и хотя я могу оценить возможности, мне не хватает простоты Arduino; гораздо проще начать работу с Arduino.
Перейти к http://arduino.cc/en/main/software чтобы загрузить программное обеспечение 1.0.6. IDE, подключите Arduino, перейдите в меню Инструменты->Плата, чтобы выбрать Arduino, выберите соответствующий порт "tty" в меню Инструменты->Serial_Port. Затем напишите на чистом Си и скачайте. В IDE есть множество примеров.
Arduino запрограммирован на C/C++. Существует распространенное заблуждение, что Arduino имеет свой собственный язык. См. Эту ссылку C++ vs. Язык Arduino? для полного обсуждения Arduino, являющегося C/C++, и упрощений, предлагаемых Arduino. Более того, вы можете увидеть код ядра Arduino здесь.
С сайта Arduino:
Могу ли я запрограммировать плату Arduino на C?
На самом деле вы уже есть; язык Arduino-это просто набор функций C/C++, которые можно вызвать из вашего кода. Ваш скетч претерпевает незначительные изменения (например, автоматическая генерация прототипов функций), а затем передается непосредственно компилятору C/C++ (avr-g++). Все стандартные конструкции C и C++, поддерживаемые avr-g++, должны работать в Arduino. Более подробную информацию смотрите на странице, посвященной процессу сборки Arduino.
Arduino предлагает легкую кривую обучения для начинающих и экспертов. Так что просто скачайте последнюю версию Arduino IDE, установите ее и наслаждайтесь.
Еще одним распространенным заблуждением является то, что C является подмножеством C++. Библиотека Arduino core написана на C++, поэтому с ее помощью невозможно программировать на C., @Dmitry Grigoryev
Я думаю, что это и есть ответ., @pylover
- RtcDateTime' не называет тип
- как отправить аргумент объектам ESP8266WebServer в функции
- Какие Arduino поддерживают ATOMIC_BLOCK?
- GSM-модуль IOT-GA6 Arduino + ошибка CME 58
- Разница между массивом char и массивом unsigned char
- Не могу использовать uint16_t в библиотеке
- Как объединить два значения в строку?
- Arduino UNO + Ethernet Shield + ЖК-дисплей + RFID, но RFID не работает
Поэтому для того, чтобы запрограммировать 328, я считаю, что вам нужно установить atmel studio для компиляции кода, а затем использовать команду командной строки avrdude, чтобы поместить скомпилированный код на arduino., @Treesrule14
@Treesrule14 это возможность, но не единственная, поэтому неверно говорить, что это необходимо. Если установлена Arduino IDE, то и компилятор avr-gcc, от которого это зависит, тоже установлен., @Chris Stratton
@Treesrule14 У меня установлена студия atmel. Я просто не могу найти никаких ресурсов, которые могли бы помочь мне прошить программу на чипе на arduino с помощью загрузчика (без программиста). Возможно ли это вообще?, @SeeingRed
Я считаю, что вам нужен программист. : (, @Treesrule14
Вам не нужна никакая IDE. Вы можете скомпилировать и загрузить его с помощью набора инструментов, который поставляется с Arduino. Посмотрите на Arduino.mk например., @hobbs
@Treesrule14 - опять ошибаешься, программист тебе не нужен. Avrdude будет разговаривать с загрузчиком на arduino так же легко, чтобы загрузить шестнадцатеричный файл, скомпилированный из автономной программы C, как и для загрузки файла, построенного Arduino IDE., @Chris Stratton
@ChrisStratton совершенно не видел вашего первого поста, извините за это. Вы пробовали программировать с помощью avr-gcc через usb?, @Treesrule14
avr-gcc-это компилятор, а не инструмент загрузки. Но любой, кто привык к Arduino IDE с подключенным через USB arduino, сделал это, да. И я, и многие другие сделали это с помощью простых программ на языке Си, построенных из командной строки с помощью avr-gcc и прошитых из командной строки с помощью avrdude (что, в конце концов, и делает Arduino IDE от имени своего пользователя). В Интернете есть много записей, это задача, выходящая за рамки тривиального резюме в ответе SO., @Chris Stratton