Возможен-ли выбор платы в тексте скетча и если да то как?

Ivanii
Offline
Зарегистрирован: 11.10.2015

Работаю с 4 разными платами, а скоро будет 6 и постоянно забываю сменить плату на нужную в инструментах, можно-ли выбрать плату в тексте скетча и если да то как?

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

?

PRC
Offline
Зарегистрирован: 03.02.2019

Похоже ТС нужно, что бы он в скетче прописал что-то вроде '#define UNO' или '#define MEGA' и код компилировался под заданную плату

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

В нашем ИДЕ нет управления проектами. И самодельного, как ни странно, тоже нет. С "пляской с бубном" можно запускать из командной строки ИДЕ с настроенным типом платы. Таким образом можно сделать свой менеджер проектов, и запускать с параметрами из файла-описания проекта. Но никто не делал, потому что, как только ты дорос до такого, тебе или станет безразлично или ты перейдешь на Студию или Еклипс, где "всё уж украдено до нас"! ;))

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Можно, но Вам это не поможет, поскольку к инструментам оно не имеет отношения. ИДЕ - само по себе, код программы - сам по себе. "КАК" - смотрите как Arduino.h выбирает с какой платой конфигурировать свои библиотеки.

Ivanii
Offline
Зарегистрирован: 11.10.2015

PRC пишет:
Похоже ТС нужно, что бы он в скетче прописал что-то вроде '#define UNO' или '#define MEGA' и код компилировался под заданную плату

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

b707
Offline
Зарегистрирован: 26.05.2017

Ivanii пишет:

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

можно, если в качестве "оболочки" использовать, например, Visual Studio

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

Ivanii пишет:

PRC пишет:
Похоже ТС нужно, что бы он в скетче прописал что-то вроде '#define UNO' или '#define MEGA' и код компилировался под заданную плату

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

Вы можете в первых строках скетча напомнить себе о переключении платы если выбранная плата не соответствует.
Через #error или static_assert, что больше нравится.

#ifndef ARDUINO_AVR_UNO
#error "Unsupported architecture, please use ARDUINO_AVR_UNO architecture for this sketch."
#endif

или

#ifndef ARDUINO_AVR_UNO
static_assert(0, "Unsupported architecture, please use ARDUINO_AVR_UNO architecture for this sketch.");
#endif

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Arhat109-2 пишет:

"КАК" - смотрите как Arduino.h выбирает с какой платой конфигурировать свои библиотеки.

Крайне безответсвенный подход. Прямой путь к тому, что программа перестанет компилироваться при любом самом плёвом изменении wiring в новой версии IDE. Что собственно и случилось с arhat.h

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

Настройки ide хранит в .arduino15/preferences.txt
У меня получился такой фокус, во время билда я кильнул ардуину, подменил preferences.txt копией с раннее сохраненной с нужной бордой, запустил ардуину с файлом скетча аргументе.
Я хукал на recipe.hooks.sketch.prebuild, забавно получилось, билд коре выполнился, а как дошло до скетча, ардуина моргнула на секунду и открылась заново с нужной платой.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Все допустимые константы типа микроконтроллера прошиты в io.h и да, смотреть лучше в него.