Вопрос по Arduino Builder

Тема в разделе "Arduino & Shields", создана пользователем AlexVS, 20 ноя 2014.

  1. AlexVS

    AlexVS Гик

    Скачал с сайта http://arduinodev.com/ Arduino Builder, скопировал все имеющиеся библиотеки в соответствующий каталог. Пробую собрать пример Blink - все ОК. Ну и еще несколько других примеров компилятся нормально.
    На других проектах лезут ошибки, не подскажите может нужно где-то что-то прописать?
    По ссылке скрин с ошибками
    https://drive.google.com/file/d/0B-wffS54hRz1bmlZZndsZFktRGc/view?usp=sharing
     
  2. ИгорьК

    ИгорьК Гуру

    На "других проектах" лезут ошибки потому, что их библиотеки не заведены в среду.
    Чтобы завсести библиотеки, надо:
    - бросить файлы *.h и *.cpp в папку проекта;
    - правая кнопка мыши на названии проекта во вкладке Projets в левой части экрана или меню Project, выбор меню "Add files..." а дальше сами сообразите;
    - ну и #include <*.h>, если этого нет в проекте.
     
    Последнее редактирование: 20 ноя 2014
  3. AlexVS

    AlexVS Гик

    Вы наверное про CodeBlock, но ведь Arduino Builder вроде как самостоятельный продукт? Или я что-то путаю?
     
  4. ИгорьК

    ИгорьК Гуру

    Да шут его знает точно. Вроде самостоятельный. Но отдельно от CodeBlock я бы его не стал применять. Он действительно часто выдает ошибки, и даже на Blink. В чем Вы видите его самостоятельную ценность?
    (У меня бывает такое, что им прошивка Ардуинки осуществляется с третьего раза. Терплю это только из-а CodeBlocks, а Вы из-за чего?)
     
  5. AlexVS

    AlexVS Гик

    Пока просто пробую, с CodeBlock пока тоже не очень получается.
     
  6. ИгорьК

    ИгорьК Гуру

    А что не получается? Очень все хорошо работает (кроме Builder).
     
    Последнее редактирование: 20 ноя 2014
  7. AlexVS

    AlexVS Гик

    Ну вот, создал проект, все .ino и .h - файлы и добавил в проект.
    Жму "Build" , начинается все хорошо
    Код (Text):
    Running target pre-build steps
    D:\CodeBlocks\ArduinoUploader "D:\Яндекс.Диск\Arduino\MyMeteo\iStation\." uno - 16 0 "D:\Яндекс.Диск\Arduino\MyMeteo\iStation\build\/lib_uno_16.a" "D:\Яндекс.Диск\Arduino\MyMeteo\iStation\build\/core_uno_16.a"
    Arduino Compiler & Uploader Version 0.8.9
    (C)2013 Developed by Stanley Huang <stanleyhuangyc@gmail.com>, distributed under GPL license
    D:\CodeBlocks\arduino/hardware/arduino/cores/arduino/Print.cpp: In member function 'size_t Print::print(const __FlashStringHelper*)':
    D:\CodeBlocks\arduino/hardware/arduino/cores/arduino/Print.cpp:44: warning: '__progmem__' attribute ignored
    Build Target: Arduino Uno (MCU: atmega328p)
    Referenced libraries: [digitalWriteFast] [iBoardRF24Network] [iBoardRF24] [SPI] [Time] [Ethernet]
    Compiling CDC.cpp...
     
    А заканчивается все печально
    Код (Text):
    Compiling wiring_pulse.c...
    avr-gcc -c -Os -s -pipe -fno-exceptions -ffunction-sections -fdata-sections -MMD -DARDUINO=105 -DF_CPU=16000000L -mmcu=atmega328p -Iarduino/hardware/arduino/cores/arduino -Iarduino/hardware
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde: In function 'void setup()':
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde:6: error: 'Serial' was not declared in this scope
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde:8: error: 'millis' was not declared in this scope
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde:11: error: 'OUTPUT' was not declared in this scope
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde:11: error: 'DDRD' was not declared in this scope
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde:11: error: 'DDRB' was not declared in this scope
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde:11: error: 'DDRC' was not declared in this scope
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde:11: error: 'bitWrite' was not declared in this scope
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde:11: error: 'pinMode' was not declared in this scope
    arduino/libraries/digitalWriteFast/digitalWriteFastTestMegax3.pde:12: error: 'HIGH' was not declared in this scope
     
    и так далее. А в конце:
    Process terminated with status -4 (0 minute(s), 55 second(s))
    50 error(s), 2 warning(s) (0 minute(s), 55 second(s))
     
  8. ИгорьК

    ИгорьК Гуру

    Если встречаются надписи "... was not declared..." в массовом количестве - это проблема с подключением библиотек. Я попытался объяснить как это сделать.
    А что касается первого кода в посте, такое случается. Это просто предупреждение.
    Справляйтесь с ситуацией - CodeBlocks очень приятная программа, особенно по сравнению с родной IDE. Она Вам полюбится. И компилирует она очень стабильно.

    UPD: Не забудьте в проект CodeBlocks включить в файл #include <Arduino.h>
    В родной IDE он включается косвенно, то есть если просто перенести ардуиновский файл в новую среду он не откомпилируется.
    123.jpg
     
    Последнее редактирование: 20 ноя 2014
  9. AlexVS

    AlexVS Гик

    Не понял, нужно добавлять вручную все .h и .cpp файлы объявленные в include?
    Код (Text):
    #include <digitalWriteFast.h>
    #include <iBoardRF24Network.h>
    #include <iBoardRF24.h>
    #include <SPI.h>
    #include <Time.h>
    #include <Ethernet.h>
    Но ведь в этих файлах есть еще куча ссылок на другие .h ?
     
  10. ИгорьК

    ИгорьК Гуру

    См. картинку. Не все - стандартные библиотеки уже включены. А вот чтобы добавить, например нестандартную <digitalWriteFast.h> - копируете файлы в папку проекта, затем правая кнопка мыши на названии проекта (для случая на картинке - KitchenLight003001), затем Add Files...
    Для Вашего случая это библиотеки <digitalWriteFast.h> <iBoardRF24Network.h><iBoardRF24.h> и возможно <Time.h>, хотя точно не знаю.
    Это просто: кидаете кучей все файлы, а потом кучей их добавляете. Дольше говорить чем делать.

    Кстати, возможно файлы и не обязательно добавлять в папку проекта физически. Не исключаю, что их можно хранить в одном месте, и включать через Add Files... в проекты. Просто я привык делать именно так, так удобнее работать с проектом из разных мест.
    Проверьте сами.

    UPD. В папке \CodeBlocks\arduino\libraries находятся библиотеки, добавление которых осуществляется просто через #include... Остальные добавляются через Add Files... и #include.
    23423.jpg
     
    Последнее редактирование: 20 ноя 2014
    AlexVS нравится это.
  11. AlexVS

    AlexVS Гик

    Теперь наткнулся на новую проблему, стандартный IDE позволяет собрать проект из нескольких .ino файлов в 1 директории. У меня код функционально разделен на несколько файлов:
    1. основной файл проекта, 2. работа с RF24, 3. работа с сайтом прогноза погоды
    Видимо придется все в один файл запихать.
     
  12. ИгорьК

    ИгорьК Гуру

    Не думаю. Максимум поменять расширение файлов *.ino на *.cpp и включить их в проект указанным способом. А может и расширение менять не нужно. Просто включить в проект через Add Filles...
     
  13. AlexVS

    AlexVS Гик

    Ну вот, все получилось, большое спасибо за консультацию.
    Стандартный IDE многое прощает, тут пришлось соблюсти порядок размещения функций.
     
  14. ИгорьК

    ИгорьК Гуру

    Да, придется объявлять (не обязательно определять) функции до setup. Но это мелочь по сравнению со всеми вкусностями CodeBloks.
    Также, этот Builder, ИМХО, плоховато работает как Serial порт в компе. Но это чувствуется только на очень мощной машине. Возможно Serial будет лучше смотреть чем-то другим, если будете замечать торможение.
     
  15. AlexVS

    AlexVS Гик

    У меня все библиотеки находятся в этом каталоге, однако все выше перечисленные пришлось добавить через Add Files.
    Если не трудно расскажите кратко, чего такого вкусного в CodeBlock?
     
  16. ИгорьК

    ИгорьК Гуру

    ... ;) да попробуйте и все. Почувствуйте автоподстановку, подсказки, открытие во вкладках файлов библиотек, поиск определений, автозамену, перечень использованных функций, переменных, макросов, определения цветов подсветки кода и настройку горячих клавиш...
    Сразу это не откроется, по-чуть чуть. Но я уже физически не могу обратно. CodeBlocks не поддерживает Arduino Yun, и все равно работаю с ним.
    А может Вам и не понравится. Только практика.
    Есть еще и AtmelStudio 6 - прекрасная программа, но очень тяжелая и у меня почему-то все время "ломалась". Там было изначально тоже неплохо, плюс включение в нее плагином CodeVision для шаблонов инициализации процессора. Но через какое-то время все это начинало чудовищно виснуть и глючить.
    Сейчас использую CodeBlocks, родную IDE для компиляции Yun и CodeVision для шаблонов.
     
    Последнее редактирование: 20 ноя 2014
  17. AlexVS

    AlexVS Гик

    AtmelStudio 6.2 мне понравился, там как раз все эти фишки в наличии, но тяжелый, гад, это точно.
     
  18. AlexVS

    AlexVS Гик

    Интересно, если проект компилирую в IDE, размер получается 66 208 байт, а если в CodeBlock, то - 69 556 байт.
    На примере Меги2560 это не критично, а вот если это будет ATmega328, то это не приятно.
     
  19. ИгорьК

    ИгорьК Гуру

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