Библиотека не вставляется в пользовательский блок
- AlexRyzh
 - Сержант
 - Сообщения: 107
 - Зарегистрирован: 22 дек 2015, 11:06
 - Откуда: Мелитополь
 - Контактная информация:
 
Библиотека не вставляется в пользовательский блок
,
В пользовательский блок добавляю библиотеку, но в скотч она не компилируется. Пробовал другие библиотеки подключать, в скотче их нет и скотч дает ошибку. Если вручную прописать библиотеку, в скотче, то все работает
			
			
						У вас нет необходимых прав для просмотра вложений в этом сообщении.
			
						- AlexRyzh
 - Сержант
 - Сообщения: 107
 - Зарегистрирован: 22 дек 2015, 11:06
 - Откуда: Мелитополь
 - Контактная информация:
 
Библиотека не вставляется в пользовательский блок
Да, конечно добавлена. При добавлении выбрал папку с библиотекой. Во вкладке присутствует, а в скетче нетAlexRyzh писал(а):В пользовательский блок добавляю библиотеку, но в скотч она не компилируется.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
							
					Последний раз редактировалось AlexRyzh 03 фев 2016, 19:51, всего редактировалось 1 раз.
									
			
						- AlexRyzh
 - Сержант
 - Сообщения: 107
 - Зарегистрирован: 22 дек 2015, 11:06
 - Откуда: Мелитополь
 - Контактная информация:
 
Библиотека не вставляется в пользовательский блок
Кроме того, рано наверное обрадовался, некорректно как-то работает.
Дело в том, что пользовательский блок без спроса к переменным добавляет свои цифры. И в результате скетч не работает, при компиляции дает ошибку, что переменная не задекларирована.
Т.е. я понимаю так, что переменная должна выглядеть так как она обозначена в библиотеке... ну что-то вроде этого я не очень в этом разбираюсь, но вот что получается:
Я получил 2 дисплея OLED LCD Display Module I2C 0.96 https://www.youtube.com/watch?v=oWazLlxFJ1Y
и пытаюсь состыковать его с программой через блок пользователя.
Проделываю простейшую операцию - вывод на дисплей слово "Hello"
Вот скетч приложенный к библиотеке (работает безупречно):
Далее в программе я прописываю во вкладках декларации и сетап соответствующий код. Компилирую в результате получаю код:
(#include <OLED_I2C.h>; вставил во вкладку декларации и эта строка появляется в скотче. Через вкладку библиотека не появляется)
И вот этот скотч не компилируется, выдает ошибку 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)
---------------------------------------------
И еще, когда я редактирую пользовательский блок, добавляю или удаляю библиотеку, блок не просит сохранения. Внизу блока надпись" Блок корректен/Блок не изменен" не меняется. Но во вкладке Библиотека сохраняется та библиотека, что добавил (или удалил). Это я делал для Мега. Пробовал для Уно - тоже самое.
			
			
						Дело в том, что пользовательский блок без спроса к переменным добавляет свои цифры. И в результате скетч не работает, при компиляции дает ошибку, что переменная не задекларирована.
Т.е. я понимаю так, что переменная должна выглядеть так как она обозначена в библиотеке... ну что-то вроде этого я не очень в этом разбираюсь, но вот что получается:
Я получил 2 дисплея OLED LCD Display Module I2C 0.96 https://www.youtube.com/watch?v=oWazLlxFJ1Y
и пытаюсь состыковать его с программой через блок пользователя.
Проделываю простейшую операцию - вывод на дисплей слово "Hello"
Вот скетч приложенный к библиотеке (работает безупречно):
Далее в программе я прописываю во вкладках декларации и сетап соответствующий код. Компилирую в результате получаю код:
(#include <OLED_I2C.h>; вставил во вкладку декларации и эта строка появляется в скотче. Через вкладку библиотека не появляется)
И вот этот скотч не компилируется, выдает ошибку 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 дек 2015, 11:06
 - Откуда: Мелитополь
 - Контактная информация:
 
Библиотека не вставляется в пользовательский блок
Да если бы при использовании спецификатора типа extern программа не приписывала свои цифры, то все работало бы.
Я исправил код вот так и скетч работает
Код#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. Просьба к автору: добавить возможность отключения автоуникальности переменных, модификаторов, спецификаторов..... Т.е. дописывать цифры в конце или нет решает пользователь.
			
			
						Я исправил код вот так и скетч работает
Код#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 фев 2016, 16:21, всего редактировалось 1 раз.
									
			
						Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость