Библиотека не вставляется в пользовательский блок

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
Ответить
Аватара пользователя
AlexRyzh
Сержант
Сообщения: 107
Зарегистрирован: 22.12.2015{, 11:06}
Репутация: 1
Откуда: Мелитополь
Контактная информация:

Библиотека не вставляется в пользовательский блок

#1

Сообщение AlexRyzh » 03.02.2016{, 18:13}

4951887.jpg
,
9611148.jpg
В пользовательский блок добавляю библиотеку, но в скотч она не компилируется. Пробовал другие библиотеки подключать, в скотче их нет и скотч дает ошибку. Если вручную прописать библиотеку, в скотче, то все работает

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Библиотека не вставляется в пользовательский блок

#2

Сообщение Олег » 03.02.2016{, 18:20}

А во вкладку Библиотеки библиотека добавлена?

Аватара пользователя
AlexRyzh
Сержант
Сообщения: 107
Зарегистрирован: 22.12.2015{, 11:06}
Репутация: 1
Откуда: Мелитополь
Контактная информация:

Библиотека не вставляется в пользовательский блок

#3

Сообщение AlexRyzh » 03.02.2016{, 19:26}

AlexRyzh писал(а):В пользовательский блок добавляю библиотеку, но в скотч она не компилируется.
Да, конечно добавлена. При добавлении выбрал папку с библиотекой. Во вкладке присутствует, а в скетче нет
Вложения
5301299.jpg
Последний раз редактировалось AlexRyzh 03.02.2016{, 19:51}, всего редактировалось 1 раз.

Аватара пользователя
AlexRyzh
Сержант
Сообщения: 107
Зарегистрирован: 22.12.2015{, 11:06}
Репутация: 1
Откуда: Мелитополь
Контактная информация:

Библиотека не вставляется в пользовательский блок

#4

Сообщение AlexRyzh » 03.02.2016{, 20:19}

Кроме того, рано наверное обрадовался, некорректно как-то работает.
Дело в том, что пользовательский блок без спроса к переменным добавляет свои цифры. И в результате скетч не работает, при компиляции дает ошибку, что переменная не задекларирована. 
Т.е. я  понимаю так, что переменная должна выглядеть так как она обозначена в библиотеке... ну что-то вроде этого я не очень в этом разбираюсь, но вот что получается:
Я получил 2 дисплея OLED LCD Display Module I2C 0.96 https://www.youtube.com/watch?v=oWazLlxFJ1Y
и пытаюсь состыковать его с программой через блок пользователя.
Проделываю простейшую операцию - вывод на дисплей слово "Hello"
Вот скетч приложенный к библиотеке (работает безупречно):
2078226.jpg
Далее в программе я прописываю во вкладках декларации и сетап соответствующий код. Компилирую в результате получаю код:
(#include <OLED_I2C.h>; вставил во вкладку декларации и эта строка появляется в скотче. Через вкладку библиотека не появляется)
8206227.jpg
И вот этот скотч не компилируется, выдает ошибку pr7.cpp.o: In function `setup':
c:\Program Files (x86)\Flprog\ide/pr7.ino:7: undefined reference to `SmallFont_213883944_1'

Теперь, когда я удаляю все что приписала программа (например получается вместо myOLED_213883944_1.setFont(SmallFont_213883944_1); это myOLED.setFont(SmallFont);)
То скотч компилируется и дисплей работает.
Как избежать этой проблемы?  Изображение

Добавлено (03.02.2016, 20:19)
---------------------------------------------
И еще, когда я редактирую пользовательский блок, добавляю или удаляю библиотеку, блок не просит сохранения. Внизу блока надпись" Блок корректен/Блок не изменен" не меняется. Но во вкладке Библиотека сохраняется та библиотека, что добавил (или удалил). Это я делал для Мега. Пробовал для Уно - тоже самое.

Аватара пользователя
AlexRyzh
Сержант
Сообщения: 107
Зарегистрирован: 22.12.2015{, 11:06}
Репутация: 1
Откуда: Мелитополь
Контактная информация:

Библиотека не вставляется в пользовательский блок

#5

Сообщение AlexRyzh » 03.02.2016{, 22:22}

Да если бы при использовании спецификатора типа extern программа не приписывала свои цифры, то все работало бы.
8672660.jpg
Я исправил код вот так и скетч работает

Код#include <OLED_I2C.h>OLED myOLED_250280784_1(SDA, SCL, 8);extern uint8_t SmallFont[];void setup(){myOLED_250280784_1.begin();  myOLED_250280784_1.setFont(SmallFont);  myOLED_250280784_1.fillScr(); myOLED_250280784_1.invertText(1); myOLED_250280784_1.print("Hello", 50, 20);     myOLED_250280784_1.update();
}void loop(){
}
Но это ж не дело искать в коде спецификатор и править  :(

P.S. Просьба к автору: добавить возможность отключения автоуникальности переменных, модификаторов, спецификаторов..... Т.е. дописывать цифры в конце или нет решает пользователь.
Последний раз редактировалось AlexRyzh 04.02.2016{, 16:21}, всего редактировалось 1 раз.

Ответить

Вернуться в «Новые»