Я считал, что примеры из правильно загруженных библиотек работают сразу. Но вот столкнулся с проблемой- не проходит pcdtest из библиотеки LCD5110_Graph . Библиотеку LCD5110_Graph скачивал отсюда : http://www.rinkydinkelectronics.com/library.php?id=47 Подскажите пожалуйста, что может означать сообщение об ошибке компилятора : Arduino: 1.6.0 (Mac OS X), Плата"Arduino Nano, ATmega328" Arduino/libraries/LCD5110_Graph/DefaultFonts.c:12:14: error: variable 'SmallFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))' fontdatatype SmallFont[] PROGMEM = ^ Arduino/libraries/LCD5110_Graph/DefaultFonts.c:117:14: error: variable 'MediumNumbers' must be const in order to be put into read-only section by means of '__attribute__((progmem))' fontdatatype MediumNumbers[] PROGMEM =
Оно просит, чтобы при объявлении переменной было const. В справке, кстати, оно явно показано. Т.е. надо примерно так: const fontdatatype SmallFont[] PROGMEM =
Я так и делал раньше в другой библиотеке - Adafruit_GFX_Library. Но там была в скетче строка "static unsigned char PROGMEM logo16_glcd_bmp[] =" и все исправилось, когда я заменил static на const. А в этом скетче я не могу найти нужную строку. Поскольку в программировании я первоклассник, то пытаюсь найти ассоциативно. В файлах библиотеки тоже не нашел ничего похожего. вот снимок экрана и что такое 117: 14, когда там всего 50 строк. Подскажите пожалуйста,куда копать
Спасибо! начинаю понимать что в библиотеках есть еще и файлы настройки. Где бы об этом прочитать кратко?
Это не файлы настройки. В данном случае речь идёт о файле '*.c' -- файл с исходным кодом программы на языке 'C'. Есть ещё заголовочные файлы -- '*.h', которые также используются в качестве исходного кода. Вот эти заголовочные файлы иногда можно рассматривать как настроечные файлы.
Лучше по-другому. Если у вас есть часто встречающиеся в разных программах одинаковые функции, вы можете оформить их в библиотеку. Библиотека состоит из двух файлов. Файл с расширением h кратко перечисляет все функции , которые вы вынесли в библиотеку. Считается правильным хорошо комментировать в нем то, как применять эти функции. Файл с раширением с или срр - есть сами функции. Таким образом, библиотеки не настраиваются, а правильно применяются.
Продолжим углубляться -- файл с расширением 'h' ( от ангилийского 'Header' - заголовок) определяет имена переменных и/или функций и то, как их использовать. Он может быть один на несколько разных библиотек (реализаций в файлах '*.c' разными командами разработчиков или, например, для разных платформ). Т.е. можно написать 'C/C++' программу, которая использует один тот же заголовочный файл '*.h' какой-либо библиотеки, но при этом эта программа может быть скомпилирована для разных платформ: Linux, Windows, Arduino, Solaris, QNX и т.п., если использовать соответствующие реализации этой библиотеки в виде файлов '*.c' и/или '*.cpp'. Это к вопросу: кратко -- форум + книги == более быстрое освоение темы.