где взять нормальное IDE?

spyphy
Offline
Зарегистрирован: 11.08.2015

1) UECIDE -- не работает прошивка (т.к. нелья задать скорость bod)

2) avr-gcc -- проблема с LiquidCrystal_I2C:

z@sp:/l/pr/arduino_gcc/1_wirgin_lib$ make
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p main.cpp -o main.elf -I /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/ -I /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/variants/eightanaloginputs/ -I /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/libraries/Wire/ -I /zdisk/soft/arduino-1.6.5/libraries/LiquidCrystal_I2C1602V1/
In file included from main.cpp:22:0:
/zdisk/soft/arduino-1.6.5/libraries/LiquidCrystal_I2C1602V1/LiquidCrystal_I2C.h:84:16: error: conflicting return type specified for ‘virtual void LiquidCrystal_I2C::write(uint8_t)’
   virtual void write(uint8_t);
                ^
In file included from /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/Stream.h:26:0,
                 from /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/HardwareSerial.h:29,
                 from /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/Arduino.h:224,
                 from main.cpp:3:
/zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/Print.h:48:20: error:   overriding ‘virtual size_t Print::write(uint8_t)’
     virtual size_t write(uint8_t) = 0;
                    ^
make: *** [main] Error 1

3) стандартный IDE Arduino - без комментариев

 

 

Клапауций 321
Offline
Зарегистрирован: 17.12.2015

написать самому с учётом всех неугодных тебе багов и отсутвующих шлюх

bwn
Offline
Зарегистрирован: 25.08.2014

Еще один адепт идеального, халявного IDE. Пишите Шура, пишите.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Поставь Atmel Studio 7. Бесплатная IDE от производителя МК. Студия работает с программатором STK-500, но есть возможность прикрутить любой программатор через вызов внешней тулзы avrdude.

spyphy
Offline
Зарегистрирован: 11.08.2015

Клапауций 321 пишет:

написать самому с учётом всех неугодных тебе багов и отсутвующих шлюх

Ну я это и пытаюсь сделать фактически. Только вот возникают проблемы с подключением сторонних библиотек (для работы с ЖКИ). Библиотеки тоже теперь самому переписывать?

Atmel Studio 7 -- не работает в Linux, на сколько я заметил.

 

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

spyphy пишет:

2) avr-gcc -- проблема с LiquidCrystal_I2C:

Вот интересно. а если Вы найдёте идеальное IDE, а какой-нибудь "говно-прогер" накропет ещё кусок "говно-кода", который не компилируется - Вы снова будете IDE менять и искать такое, в котором любое дерьмо скомпилируется?

Сдаётся мне, что проблема не с LiquidCrystal_I2C, а с чем-то другим.

spyphy пишет:
3) стандартный IDE Arduino - без комментариев

А чего так?

spyphy пишет:

где взять нормальное IDE?

 
Для начала точно определите понятие "нормальное". Что для Вас нормально? Чтобы любая какашка компилировалась без ошибок?
 
Нигде!
Клапауций 321
Offline
Зарегистрирован: 17.12.2015

spyphy пишет:

Библиотеки тоже теперь самому переписывать?

бери выше и глубже - свой язык писать.

spyphy пишет:

Atmel Studio 7 -- не работает в Linux, на сколько я заметил.

проблемы линуксоидов виндузятников не волнуют.

spyphy
Offline
Зарегистрирован: 11.08.2015

ЕвгенийП пишет:

Для начала точно определите понятие "нормальное". Что для Вас нормально? Чтобы любая какашка компилировалась без ошибок?

В стандартном IDE проблема на с компиляцией, а с текстовым редактором, точнее с его отсутствием как такового. Автоматическое дополнение, которое не отключается. Табуляция не настраивается. Кодировка текста не пойми какая. Про шрифт и фон вообще молчу.

По сути надо писать в блокноте, вставлять это в IDE и компилирировать. - много лишних действией получается.

 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Вы Архату не родственник?

std
Offline
Зарегистрирован: 05.01.2012

По интерфейсу среда действительно фуфел, я пишу во встроенном редакторе FAR - там и beyond EOL, и настраиваимая ширина таба (и автозамена пробелами, если нужно), плюс до кучи можно выделять вертикально, в общем зашибись.

Если не то, существует надстройка, делающая Arduino среду более-менее цивильной - MariaMole.

По проблемам с компиляцией хрен угадаешь, я просто использую среду 1.0.5. Не жалуется.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

spyphy пишет:

Atmel Studio 7 -- не работает в Linux, на сколько я заметил.

spyphy пишет:

В стандартном IDE ... Кодировка текста не пойми какая.

Вообще-то кодировка там самая стандартная для Линукса - UTF-8. Я еще понял бы, если бы говорил виндузятник, не признающий ничего кроме 1251.

А так, мне кажется, Вы сами себе противоречите.

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

spyphy,

табуляция настраивается, шрифты тоже. Просто не в диалоге. а в файле preferences.txt

Но не это главное. Вы можете сформулировать критерии нормальности? Как проверить какое-то IDE нормальное оно или нет?

bwn
Offline
Зарегистрирован: 25.08.2014

ЕвгенийП пишет:

spyphy,

табуляция настраивается, шрифты тоже. Просто не в диалоге. а в файле preferences.txt

Но не это главное. Вы можете сформулировать критерии нормальности? Как проверить какое-то IDE нормальное оно или нет?

Нормальное IDE, это которому ставишь задачу, а оно за тебя пишет. ВОТ.

spyphy
Offline
Зарегистрирован: 11.08.2015

ЕвгенийП пишет:

Вы можете сформулировать критерии нормальности?

Не могу, т.к. их очень много. Но вот основные:

- наличие документации.

- открытые исходные коды.

Автодополнение отключается хоть? Какая оптия? Сам должен догадатьс?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

std пишет:

я пишу во встроенном редакторе FAR 

О да... Я когда-то в FAR'е страницы на PHP пилил... (до сих пор помню, как подошёл человек с таким выражением лица О_о и спросил, что я вижу/понимаю в этой мешанине белых букв на синем фоне...). Потом на Notepad++ перешёл, отличнейший редактор.

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

spyphy пишет:

Не могу, т.к. их очень много. Но вот основные:

- наличие документации.

- открытые исходные коды.

Автодополнение отключается хоть? Какая оптия? Сам должен догадатьс?

Ну, а раз не можете, то чего требуете? "Сделайте мне красиво"? 

Я не знаю, что такое атодополнение и потому не могу сказать отключается оно или нет.

spyphy
Offline
Зарегистрирован: 11.08.2015

ЕвгенийП пишет:

Я не знаю, что такое атодополнение и потому не могу сказать отключается оно или нет.

Это когда само ставить скобку } и т.п.

Впрочем ладно, кажется я разобрался с UECIDE. Там есть файл настроек, где можно выставить скорость upload. Единственное, что если работать из под user не root, надо после подключения платы к usb каждый раз делать делать sudo chmod a+rw /dev/ttyUSB0

p.s. этот UECIDE не сильно конечно отличается от стандартного ide, но там хоть какой-то интерфейс пользователя имеется, на первое время хватит.

 

Клапауций 321
Offline
Зарегистрирован: 17.12.2015

spyphy пишет:

Автодополнение отключается хоть? Какая оптия? Сам должен догадатьс?

блин - у меня в Дуино ИДЕ автокоплете не работает

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Клапауций 321 пишет:

spyphy пишет:

Автодополнение отключается хоть? Какая оптия? Сам должен догадатьс?

блин - у меня в Дуино ИДЕ автокоплете не работает

Ни у кого до этого момента не работало.

spyphy
Offline
Зарегистрирован: 11.08.2015

У этого UECIDE закрывающая скобка тоже ставится автоматом и это не отключается! впустую временя только убил на установку этого IDE.

Похоже от wirgin и сопуствующих библиотек придется отказаться.

spyphy
Offline
Зарегистрирован: 11.08.2015

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

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

Ну положим я ИДЕ уже тоже пользую только для проверки "а смогут ли виндузятники воспользоваться моим кодом?". В Линухе полно редакторов, настраиваемых "вдоль и поперек". Можно настроить Эклипс под работу а-ля ИДЕ, в сети полно инструкций "как", можно взять Е-макс или как он там, давно не пользовал .. я себе настроил Kate. Многооконен, вполне понимает и язык с подсветкой, есть встроенные описания под С/С++ можно описалово донастроить указав что "ino" - это тоже С++, есть встроенный терминал и можно хоть ручками запускать чего хочешь .. несколько "батников": для компиляции, для прошивки, для получения ассемблера, препроцессорного результата и тут же с загрузкой в Кате .. мне удобно и хватает. Разве что как Эклипс не переходит по вызову функции на место её определения .. да даже gedit можно точно также запилить .. и вообще: Линукс - это как Лего, чем мне и нравится. Хочешь запорожец - пожалуйста, а надо мерседес - тоже не проблема .. надо из запорожца боинг долепить - тоже можно. Разве что "углы" деталек от Лего торчать будут .. напильник в руки, если не нравится. В смысле берешь исходник ... :)

P.S. У Линукса только один недостаток: система, писанная программистами "для себя", в силу чего нормальная документация отсутствует от слова "почти совсем". Ну и последние 3-4 года, в среде разработчиков появилось слишком много виндузовых диверсантов, особенно в среде убунтоидов, пишущих "шибко умные" прибамбасы. 3-й гном - яркий тому пример. Исключительно из-за этого идиотизма ушел на кеды и уже ищу, какой дектоп не будет за меня думать. Не надо "за меня" додумывать ничего!

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

Легко. Можете даже MC настроить, добавив ему команды компиляции. Можете даже свой make собрать и подшивать свои либы "по умолчанию". :)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

spyphy пишет:

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

Это принципиально невозможно, т.к. противоречит самой концепции IDE.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

andriano пишет:

spyphy пишет:

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

Это принципиально невозможно, т.к. противоречит самой концепции IDE.


Да ладно, если не ошибаюсь Code::Blocks такое может.

nevkon
Offline
Зарегистрирован: 20.01.2015

Не совсем понятно чем не устраивает автодополнение команды? Тем чтобы глюки легче ловить было от невыставленных закрывающих знаков?

Компилировать можно и без ИДЕ, QT тому пример. Создается программа в оболочке, скомпилировать можно из командной строки. То что оболочка не запустится при компиляции из командной строки такого договора не было, так что не противоречит. Как запустится так и закроется.

зы В FoxPro можно вообще без компиляции выполнять программы - их все равно оболочка отрабатывает как ни крутись.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

kisoft пишет:
Да ладно, если не ошибаюсь Code::Blocks такое может.

Значит, Code::Blocks либо не IDE, либо не совсекм IDE.

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

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

andriano пишет:

kisoft пишет:
Да ладно, если не ошибаюсь Code::Blocks такое может.

Значит, Code::Blocks либо не IDE, либо не совсекм IDE.

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

Воо блин !

Так и ардуино IDE тоже не IDE, так как, при компиляции зовет 'arduino-builder.exe'

который можно позвать из любого батника не запуская саму IDE.

Все IDE так устроены.

 

а Code::Blocks - весЩЬ ! переполз на него, редактор отменный, только один раз настроить под себя.

spyphy
Offline
Зарегистрирован: 11.08.2015

nevkon пишет:

Не совсем понятно чем не устраивает автодополнение команды? Тем чтобы глюки легче ловить было от невыставленных закрывающих знаков?

Тем, что когда я ставлю открывающую скобку, то ставлю и закрывающуюся. IDE ставить еще одну закрывающуюся скобку, которую я должен удалять каждый раз? Надо мне такая автоматизация??

Это всё равно, что когда станешь пенсионером лет через 30, у каждого принудительно будет персональный робот-нянка, который будет кормить тебя из ложки, причем эту функцию у робота нельзя будет отключить (не будет там такой кнопки просто!). Ну все же так делают, а ты что особенный типа?

 

spyphy
Offline
Зарегистрирован: 11.08.2015

Мне нужен IDE без IDE. Ну вы поняли.

avr-gcc не компилит ардуиновы библиотеки, хз почему, я уже писал об этом, возможно нужен хороший make-файл. В остальном же это именно то, что надо (если писать на чистом C++, то всё вообще ОК).

Буду пробывать Code::Blocks.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

andriano пишет:

kisoft пишет:
Да ладно, если не ошибаюсь Code::Blocks такое может.

Значит, Code::Blocks либо не IDE, либо не совсекм IDE.

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

Честное слово, тратить время на пустое не хочется.

Смотрим в WiKi, что такое интегрированная среда разработки и видм из чего на состоит:

Среда разработки включает в себя:

текстовый редактор,
компилятор и/или интерпретатор,
средства автоматизации сборки,
отладчик.

Ок, Microsoft Visual Studio - это IDE или не IDE? Система сборки у неё вполне "самостоятельная". https://msdn.microsoft.com/ru-ru/library/f35ctcxw.aspx

Дайте пруф, почему IDE не может пачкать свои белы рученьки консольной сборкой проектов? Тогда и поговорим.

 

std
Offline
Зарегистрирован: 05.01.2012

Arhat109-2 пишет:
есколько "батников": для компиляции, для прошивки, для получения ассемблера, препроцессорного результата и тут же с загрузкой в Кате .. мне удобно и хватает.

Имне!! есть такое для windows? мне было бы куда удобнее с командной строки скажем build.bat e:\file.ino, upload.bat e:\file.ino чем клацать по Ino файлу Enter и ждать пока среда загрузится, чтобы собрать, залить, и насрать в каталоге %temp%.

И всё же, огромное, волосатое "НО" притаилось в углу: удобные командностроковые опции имеет только IDE >1.5. У меня 1.0.5 и менять её не хочется ваще-ваще.

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

Ещё в мае-июне, знакомясь со всем этим барахлом я поступил просто:

Как только вычитал, что ИДЕ умеет быть "болтливой" (в настройках кнопочки выдавать детально), так тут же запустив блинк, тщательно перекопировал чего и как вызывает ИДЕ, чтобы оно скомпилялось и прошилось .. немного времени на "разобраться что к чему" и ву-а-ля, сделал run.sh, который запускает это все, с теми же указаниями путей "где что брать" только не в /tmp/build/.. а куда мне захотелось. Постепенно оно доращивалось, по мере вычитывания опций gcc, линкеров, библиотекарей .. почему для винды нельзя пойти этим же путем? :)

spyphy
Offline
Зарегистрирован: 11.08.2015

да с этим Code::Blocks не понятно еще что быстрее, или оптии проекта под arduino в нем самому выставить, или make-файл написать. особой разницы, видимо, и нет.

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

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

kisoft пишет:

Смотрим в WiKi, что такое интегрированная среда разработки и видм из чего на состоит:

Среда разработки включает в себя:

текстовый редактор,
компилятор и/или интерпретатор,
средства автоматизации сборки,
отладчик.

Ок, Microsoft Visual Studio - это IDE или не IDE? Система сборки у неё вполне "самостоятельная". https://msdn.microsoft.com/ru-ru/library/f35ctcxw.aspx

Дайте пруф, почему IDE не может пачкать свои белы рученьки консольной сборкой проектов? Тогда и поговорим.

Пруф Вы привели сами: текстовый редактор - обязательный элемент IDE. Если он не используется, это уже не IDE.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Согласно Вашей логике, если я не использую отладчик, значит это не IDE. Пустая трата времени, дальше без меня.

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

spyphy, блин .. ну кто вам мешает посмотреть в опции, которые пользует ИДЕ и добавить все необходимые опции -I -D в строку компиляции скетча?!? И всё будет "находится" на ура.

spyphy
Offline
Зарегистрирован: 11.08.2015

Arhat109-2 пишет:

spyphy, блин .. ну кто вам мешает посмотреть в опции, которые пользует ИДЕ и добавить все необходимые опции -I -D в строку компиляции скетча?!? И всё будет "находится" на ура.

это мешает

make
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p main.cpp -o main.elf LiquidCrystal_I2C.o -I /zdisk/soft/arduino-gcc/hardware/arduino/avr/cores/arduino/ -I /zdisk/soft/arduino-gcc/hardware/arduino/avr/variants/eightanaloginputs/ -I /zdisk/soft/arduino-gcc/hardware/arduino/avr/libraries/Wire/ -I /zdisk/soft/arduino-gcc/libraries/LiquidCrystal_I2C1602V1/  
/usr/lib/gcc/avr/4.8.2/../../../avr/lib/avr5/crtm328p.o: In function `__bad_interrupt':
../../../../crt1/gcrt1.S:195: undefined reference to `main'
/tmp/ccNTQFaA.o: In function `setup':
main.cpp:(.text+0x18): undefined reference to `Print::print(char const*)'
main.cpp:(.text+0x30): undefined reference to `Print::print(char const*)'
LiquidCrystal_I2C.o: In function `LiquidCrystal_I2C::printstr(char const*)':
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:287: undefined reference to `Print::print(char const*)'
LiquidCrystal_I2C.o: In function `LiquidCrystal_I2C::expanderWrite(unsigned char)':
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:240: undefined reference to `Wire'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:240: undefined reference to `Wire'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:240: undefined reference to `TwoWire::beginTransmission(unsigned char)'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:241: undefined reference to `TwoWire::send(int)'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:242: undefined reference to `TwoWire::endTransmission()'
LiquidCrystal_I2C.o: In function `LiquidCrystal_I2C::pulseEnable(unsigned char)':
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:247: undefined reference to `delayMicroseconds'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:250: undefined reference to `delayMicroseconds'
LiquidCrystal_I2C.o: In function `LiquidCrystal_I2C::home()':
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:116: undefined reference to `delayMicroseconds'
LiquidCrystal_I2C.o: In function `LiquidCrystal_I2C::clear()':
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:111: undefined reference to `delayMicroseconds'
LiquidCrystal_I2C.o: In function `LiquidCrystal_I2C::begin(unsigned char, unsigned char, unsigned char)':
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:60: undefined reference to `delayMicroseconds'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:64: undefined reference to `delay'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:72: undefined reference to `delayMicroseconds'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:76: undefined reference to `delayMicroseconds'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:80: undefined reference to `delayMicroseconds'
LiquidCrystal_I2C.o: In function `LiquidCrystal_I2C::init_priv()':
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:41: undefined reference to `Wire'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:41: undefined reference to `Wire'
C:\Program Files\Arduino_16/hardware\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.cpp:41: undefined reference to `TwoWire::begin()'
LiquidCrystal_I2C.o:(.rodata._ZTV17LiquidCrystal_I2C+0x6): undefined reference to `Print::write(char const*)'
LiquidCrystal_I2C.o:(.rodata._ZTV17LiquidCrystal_I2C+0x8): undefined reference to `Print::write(unsigned char const*, unsigned int)'
collect2: error: ld returned 1 exit status
make: *** [main] Error 1

$

Все файлы для LiquidCrystal_I2C я скопировал в текущий каталог. Откуда здесь C:\Program Files вылезает вообще без понятия (т.к. я под ubuntu это делаю)

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

понятия не имею что и откуда у вас вылазит. Тоже сижу не под виндой .. скопировал все ключики и все работает на ура. Чудес - не бывает.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Попробуйте указать ваш контролер

и в начало файла добавьте

#include <Arduino.h>

 

spyphy
Offline
Зарегистрирован: 11.08.2015

xDriver пишет:
Попробуйте указать ваш контролер

его нет в списке (328p)

spyphy
Offline
Зарегистрирован: 11.08.2015

Arhat109-2 пишет:

понятия не имею что и откуда у вас вылазит. Тоже сижу не под виндой .. скопировал все ключики и все работает на ура. Чудес - не бывает.

С LiquidCrystal_I2C тоже работает?

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

Доберусь домой, посмотрю. Не помню, вроде как с этой либой мой LCD1602 пашет...

 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

spyphy пишет:

xDriver пишет:
Попробуйте указать ваш контролер

его нет в списке (328p)

Code::Blocks брал тут http://sourceforge.net/projects/arduinodev/files/

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

Ну вот есть типа такое начало скетча:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include <Stepper.h>

#define STEPS 100
Stepper stepper(STEPS, 8, 9, 10, 11);

int previous = 0;
Servo myservo;  // create servo object to control a servo

int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin

int ledPin = 13;

int redPin = 5;
int greenPin = 6;
int bluePin   = 7;

int trigPin = 4;
int echoPin = 3;
int dist1 = 80;
int dist2 = 40;
int dist3 = 20;

//задаем адрес LCD экрана 0x27, 16 символов, 2 строки
LiquidCrystal_I2C lcd(0x27,16,2); 

void setup() {

Иде компиляет вполне нормально, никаких C:\program files или как там у вас - не замечено. Воткнул в список файлов путь до этой либы, типа так: ~/Arduino/libraries/LiquidCrystal_I2C

Среди строк компиляции поймал вот такое:

~/progs/arduino-1.6.4/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -DARDUINO=10604  -DARDUINO_ARCH_AVR -DARDUINO_AVR_MEGA2560 -mmcu=atmega2560 -DF_CPU=16000000L  -I~/progs/arduino-1.6.4/hardware/arduino/avr/cores/arduino -I~/progs/arduino-1.6.4/hardware/arduino/avr/variants/mega -I~/progs/arduino-1.6.4/hardware/arduino/avr/libraries/Wire -I~/Arduino/libraries/LiquidCrystal_I2C  ./L298N.cpp -o ./L298N.cpp.o

, где есть подстановки из sh-ника:

PROG_DIR = '~/progs/arduino-1.6.4/hardware/tools/avr/bin/',

FLAGS = '-c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -DARDUINO=10604  -DARDUINO_ARCH_AVR' -- заимствовано тупо из строк компиляции ИДЕ, даже не разбирался надо ли оно..

Проц, плата и частота - параметры запуска compile.sh как и файл с перечнем компилируемых файлов проекта. Они у меня собраны в один файл и компилируются "в цикле".

Далее выделен стандартный набор путей для тех инклудов, что в < > скобках.

Последние 2 жирным - стандартные пути, где искать типовые библиотеки Ардуино и последний инклуд - то что втыкнул в список моего "файла проекта" как путь до билиотеки.

Всё нормально скомпилялось в терминале Kate. Ну не бывает "чудес". :)
 

spyphy
Offline
Зарегистрирован: 11.08.2015

xDriver пишет:

Code::Blocks брал тут http://sourceforge.net/projects/arduinodev/files/

 

Ну с этим я разобрался. И вернулся к тому, с чего всё начиналось:

Как присобачить к Code::Blocks файл LiquidCrystal_I2C.o ???

spyphy
Offline
Зарегистрирован: 11.08.2015

Arhat109-2 пишет:

~/progs/arduino-1.6.4/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -DARDUINO=10604  -DARDUINO_ARCH_AVR -DARDUINO_AVR_MEGA2560 -mmcu=atmega2560 -DF_CPU=16000000L  -I~/progs/arduino-1.6.4/hardware/arduino/avr/cores/arduino -I~/progs/arduino-1.6.4/hardware/arduino/avr/variants/mega -I~/progs/arduino-1.6.4/hardware/arduino/avr/libraries/Wire -I~/Arduino/libraries/LiquidCrystal_I2C  ./L298N.cpp -o ./L298N.cpp.o

ключевая фраза

собственно на этапе компиляции у меня тоже проблем не возникает, они возникают в процесс линковки.

 avr-g++ -c -g -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p main.cpp -o main.elf LiquidCrystal_I2C.o -I /zdisk/soft/arduino-gcc/hardware/arduino/avr/cores/arduino/ -I /zdisk/soft/arduino-gcc/hardware/arduino/avr/variants/eightanaloginputs/ -I /zdisk/soft/arduino-gcc/hardware/arduino/avr/libraries/Wire/ -I /zdisk/soft/arduino-gcc/libraries/LiquidCrystal_I2C1602V1/ 
avr-g++: warning: LiquidCrystal_I2C.o: linker input file unused because linking not done

 

spyphy
Offline
Зарегистрирован: 11.08.2015

spyphy пишет:

Как присобачить к Code::Blocks файл LiquidCrystal_I2C.o ???

а не, всё нормально. это я туплю, просто сто лет не пользовался этими IDE. Там надо было не .o вставлять, а LiquidCrystal_I2C.cpp. Сейчас вроде всё работает. Т.е. в CodeBlocks-Arduino. Попробую еще под линукс эту сборку поставить.

spyphy
Offline
Зарегистрирован: 11.08.2015

под ubuntu не получается настроить codeblocks (например, по этой инструкции https://github.com/provideyourown/CodeBlocks-Arduino), он начинает виснуть

spyphy
Offline
Зарегистрирован: 11.08.2015

Что я могу сказать, CodeBlocks надежд моих не оправдал. Сам по себе компилятор не плохой, но сборка CodeBlocks-Arduino заработала только под виндой и то не для всех либ, например Ethernet просто так там не пошел. Конечно можно настроить, но это не проще чем самому тот же make-файл написать.

Как вариант пробывал gedit+uecide+avrdude (плюс uecide в том, что он автоматически обновляет содержимое), но все же как-то через одно место получается.

И вот наконец установил себе https://github.com/sudar/Arduino-Makefile. Поначалу кажется страшноватым, но уже после мучений с CodeBlocks и прочими IDE с этим разобрался за полчаса и всё работает как ни странно!

Врочем, это же можно юзать и как плагин к CodeBlocks, так что возможно знакомство с CodeBlocks было не бесполезным.

 

maslyukov
Offline
Зарегистрирован: 29.12.2015

spyphy пишет:

1) UECIDE -- не работает прошивка (т.к. нелья задать скорость bod)

2) avr-gcc -- проблема с LiquidCrystal_I2C:

z@sp:/l/pr/arduino_gcc/1_wirgin_lib$ make
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p main.cpp -o main.elf -I /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/ -I /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/variants/eightanaloginputs/ -I /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/libraries/Wire/ -I /zdisk/soft/arduino-1.6.5/libraries/LiquidCrystal_I2C1602V1/
In file included from main.cpp:22:0:
/zdisk/soft/arduino-1.6.5/libraries/LiquidCrystal_I2C1602V1/LiquidCrystal_I2C.h:84:16: error: conflicting return type specified for ‘virtual void LiquidCrystal_I2C::write(uint8_t)’
   virtual void write(uint8_t);
                ^
In file included from /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/Stream.h:26:0,
                 from /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/HardwareSerial.h:29,
                 from /zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/Arduino.h:224,
                 from main.cpp:3:
/zdisk/soft/arduino-1.6.5/hardware/arduino/avr/cores/arduino/Print.h:48:20: error:   overriding ‘virtual size_t Print::write(uint8_t)’
     virtual size_t write(uint8_t) = 0;
                    ^
make: *** [main] Error 1

3) стандартный IDE Arduino - без комментариев

 

Тут проблема не в IDE а в API библиотеки arduino-1.6.5:

virtual void LiquidCrystal_I2C::write(uint8_t)

Пытается перегрузить 

virtual size_t Print::write(uint8_t);

у них разные типы возвращаемых значений. Возьми либу отсюда https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library там этой проблемы нет