Помогите пожалуйста, понять, где ошибка ?
- Войдите на сайт для отправки комментариев
Пнд, 06/08/2012 - 16:24
Имеется скетч
#include <LiquidCrystal.h> #include <LiquidCrystalRus.h> LiquidCrystalRus lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.print("Здравствуй, мир!"); } void loop() { lcd.setCursor(0, 1); lcd.print(millis() / 1000); }
И при компиляции выдаёт ошибку 'LiquidCristalRus' does not name a type. Я только начал учиться и никак не пойму, где ошибка ?
Есть ещё и другие скетчи с подобной ошибкой но, мне пока с этой бы разобраться...
Блин, ошибку допустил, а исправить не могу... Правильно будет 'LiquidCrystalRus' и далее по тексту.
желательно конечно ссылку на библиотеку LiquidCrystalRus - а точнее откуда скачивали и почитать ее референс - инструкцию для пользователя
судя по выдаваемой ошибке библиотека не добавляет данных типа LiguidCrystalRus,а добавляет какой то другой,осмелюсь предположить LiquidCrystal - опять таки для этого нужно читать о функционале библиотеки.
плюс не думаю что граматно добавлять 2 разные библиотеки для управления ЖК дисплеем.
Я сам не ногу уже ничего изменить, если не трудно, измените сами.
Библиотеки скачал, установил но, пользы от них никакой. Или не туда установил ? Дык, папка одна...
Вот так и отбивается у людей охота, к познанию нового. Где- то ошибка допущена, а ответ на неё фиг найдёшь. Помучаешься, помучешься да и бросишь эту затею...
библиотеки должны быть в папке libraries в корневой папке arduino.у каждой библиотеки своя папка со своим именем в вашем случает libraries\LiquidCrystal\ и libraries\LiquidCrystalRus\
а вы думали раз два и готово? тем более подключение ЖК экрана далеко не для новичка задача.
Я не думал что, раз, два и готово.
Экран уже подключен и работает. Просто хотел попробовать на русском языке вывести...
У меня папка находится вместе со скетчами C:\Documents and Settings\papa rimskij\My Documents\Arduino\libraries и в ней ещё три папки
LineDriver, LiquidCrystalExt, LiquidCrystalRus и LiquidCrystal.
Наверное всё таки, ошибка где то...
Ну можно еще предположить что какие-то библиотеки между собой передрались или старая версия библиотеки. Какие из них "нужны", а какие "нафиг послать" - сказать нельзя. Так как вы проигнорировали просьбу mixail844 из поста #2 .
Решили что найдется кто-то кто не поленится сам найти эти библиотеки (и не факт что ту же версию что и вы используете). А потом удивляетесь что "неохотно вам отвечают".
Честно говоря по этой и другим веткам, складывается впечателние что вы думаете что "тут что-то должны". Никто ничего не должен. Все помогают только по принципу "если не трудно и не долго - можно помочь". Планка "не трудно", у каждого своя. И чем выше вы ее задираете (даете мало инфы, не отвечаете на вопросы, не предоставляете линки что-бы люди не тратили свое время, не хотите сами загуглить) - тем меньше шансов что кто-то будет отвечать.
P.S. Я писал это не для того что-бы вас обидеть, а для того что-бы вы могли чаще получать ответы на форуме. Есть же люди которым отвечают охотно. Бывает что и несколько человек "на перегонки". Обычно это происходит когда вопрос ясно сформулирован, даны ссылки на вспомогательную инфу и видно что человек сам пытаетеся решить проблему, а не "дайте мне все готовое".
Я не считаю что, кто- то мне должен. Я просто пришёл за помощью. А вот то, что кто- то не желает понимать что, не все всё знают, это точно. Пожалуйста, не читайте мне больше нотации.
Если не знаете, что сказать по теме, просто читайте.
Я не знаю, чем мой вопрос не ясно сформулирован ? Текст программы, выложил без изменений. Сама программа Arduino-1.0.1-windows скачана с оффсайта и изменениям, мной, не подвергалась. О том, что нужны какие- то библиотеки, мне никто не говорил, поэтому я про них ничего не знал. Сейчас, после ваших вопросов, нашёл, правда, не знаю, они ли ? Вроде сам разобрался, куда их положить. Но результата нет всё равно. Хотя другие примеры работают. Ну и какие теперь выводы может сделать человек, далёкий от программирования ? Коли даже вы, искушённые в этом вопросе, не можете членораздельно сказать, в чём проблема ?
Может быть и библиотеки передрались но, это я никак при всём желании это определить не смогу. Потому что, не знаю.
Если бы я имел линк на библиотеку, я бы его уже выложил, раз нужен но, мне самому "добрый" человек прислал текст, мол, вот тебе, пользуйся. Сами библиотеки, выложить ?
Блин, похоже, пока разбирался с этими библиотеками, что- то у себя подпортил... Теперь на всех скетчах: ошибка при компиляции
In file included from sketch_LCD16x2.cpp:24:
C:\Documents and Settings\papa rimskij\My Documents\Arduino\libraries\LiquidCrystal/LiquidCrystal.h:82: error: conflicting return type specified for 'virtual void LiquidCrystal::write(uint8_t)'
C:\Documents and Settings\papa rimskij\Desktop\Arduino\Arduino-1.0.1-windows\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
Кто- нибудь может сказать, что нужно исправлять ? Мне самому это не понять...
Исправил, теперь скетчи работают, а с русским проблема так и не решилась...
А с русским не все просто. Если он есть в индикаторе (не факт), то кодировка очень далека от win1251, а тем более UTF-8.
Есть программы, конвертирующие русские буквы в то, что нужно индикатору. Я у себя храню и раздаю всем, кому надо. Я, кстати, где-то про это на форуме уже писал Программа-конвертер
А в данном случае, проблема в чём ? В библиотеке ? Мне сейчас нужно понять, где ошибка ? Либо я не правильно что- то делаю, либо программисты пишут программы под свои библиотеки, о которых простым смертным просто невдомёк ? Либо, программист накуролесил, для потехи над чайниками...
До Arduino пока дело ещё не дошло, она даже не включена ещё, а ошибка уже выдаётся.
По полочкам.
1. Приведенная выше программулина готовит данные для индикатора, подключенного через стандартную библиотеку LiquidCrystal.h
2. Одновременно эти библиотеки использовать нельзя (отсюда ошибки компиляции) - или стандартную, или "rus"
3. Не советую выводить в цикле без паузы что-либо на индикатор, он медленный, у него "крыша съедет"
Попробуйте вариант:
Попробовал... То же самое: 'LiquidCristalRus' does not name a type.
Может, выложить для просмотра библиотеку LiquidCrystalRus ?
Попробовал... То же самое: 'LiquidCristalRus' does not name a type.
Может, выложить для просмотра библиотеку LiquidCrystalRus ?
Зачем библиотеку выкладывать - разберитесь сначала со своими каракулями.
Если компилятор пишет что имя LiquidCristalRus ему неизвестно, значит, во-первых, оно ему действительно неизвестно, а, во-вторых, имя такое где-то в исходниках таки есть и вы просто не замечаете свою опечатку.
Поменяйте соответствующие имена на LiquidCrystalRus.
Ну не стОит подозревать меня в такой глупости. Я вторым постом написал про это. Сейчас, просто скопировал оттуда.
Это было сделано первым и не помогло... Пробовал и вручную переименовывать файл, результат тот же.
А ничего другого просто не остается - вы либо раз за разом неправильно копируете сообщение компилятора (упорно пишете CrIstal вместо CrYstal), либо имеете-таки эту опечатку в тексте скетча (на которую компилятор и указывает), но не исправляете ее.
Вот полный текст сообщения
sketch_aug08b:2: error: 'LiquidCrystalRus' does not name a type
sketch_aug08b.cpp: In function 'void setup()':
sketch_aug08b:6: error: 'lcd' was not declared in this scope
sketch_aug08b.cpp: In function 'void loop()':
sketch_aug08b:12: error: 'lcd' was not declared in this scope
Вот имя файла LiquidCrystalRus который находится в папке arduino/libraries
А сами можете попробовать, у себя этот скетч, проверить ? Может, у меня действительно где- то что- то уже не соответствует оригиналу, а я тут всем голову морочу ?
Поковырялся я в нете в поисках этой библиотеки... везде валяется версия 0018 - с новой версией IDE 0101 явно несовместимая - ругается на некорректную замену метода "Print", так что не судьба. Остается только:
А ошибки выдает, потому что библиотеку скомпилить не может.
Значит 1-й вариант - неправильное цитирование компилятора.
А к полному тексту сообщений не мешало бы выложить и полный текст скетча. Вашего скетча.
Ибо библиотеку я без труда посмотрю, например, на github.com/mk90/LiquidCrystalRus.
Попробовал и этот скетч, опять не нравится: expected constrictor, destructor or type conversion before '<' token
и полный текст
sketch_aug08b:0: error: expected constructor, destructor, or type conversion before '<' token
sketch_aug08b.cpp: In function 'void setup()':
sketch_aug08b:7: error: 'lcd' was not declared in this scope
sketch_aug08b.cpp: In function 'void loop()':
sketch_aug08b:13: error: 'lcd' was not declared in this scope
Ну, текст, я беру отсюда, через code... Выкладывать ?
Поковырялся я в нете в поисках этой библиотеки... везде валяется версия 0018 - с новой версией IDE 0101 явно несовместимая
Вот тут вроде бы поновее версия - компатибельная с 1.0.
Попробовал и этот скетч,
попробуйте в начало первой строки поставить # - фишер упустил этот символ в спешке
Значит 1-й вариант - неправильное цитирование компилятора.
А к полному тексту сообщений не мешало бы выложить и полный текст скетча. Вашего скетча.
Ибо библиотеку я без труда посмотрю, например, на github.com/mk90/LiquidCrystalRus.
Вот это правильная библиотека! Компилится без ошибок, в том числе и скатч топикастера (с заремареной штатной библиотекой) Спасибо!
Попробовал и этот скетч,
попробуйте в начало первой строки поставить # - фишер упустил этот символ в спешке
Извините, не внимательно копипастил. Кстати, библиотека "LiquidCrystalRus" увеличивает скетч почти на килобайт - имейте в виду, когда не хватит места :)
Ребята, я уже не знаю что писать... Скачал эту версию, распаковал, положил её, с заменой старой, в папку arduino/libraries. Вставил последний вариант скетча из этой темы и то же самое сообщение, что в предыдущем моём посте...
Ребята, я уже не знаю что писать... Скачал эту версию, распаковал, положил её, с заменой старой, в папку arduino/libraries. Вставил последний вариант скетча из этой темы и то же самое сообщение, что в предыдущем моём посте...
И даже # в первую строку добавили?
И кста - как вам удалось связать "последний вариант скетча" и LiquidCrystalRus?
Поставил в начало первой строки # и всё скомпилировалось. А в первом сообщении, что нужно исправить, чтобы скомпилировалось ? Или там, совсем не правильно ?
Пишем не синхронно поэтому и непонятки получились.
А связалось с LiquidCrystalRus наверное потому, что не знал, что несвязываемое ?
У меня скомпилился даже Ваш первый скетч без ошибок:
Только что в пустую копию Arduino (Директорию под библиотеку создавал вручную - уж больно мне не понравился вариант названия "по умолчанию" от mk90: "mk90-LiquidCrystalRus-780b5d4") скопировал загруженные по приведенной мною ранее ссылке файлы и откомпилировал приведенный чуть ранее скетч:
Компилятор "ругнулся" коротко:
Binary sketch size: 3410 bytes (of a 30720 byte maximum)
Вы хоть видите в "Экзамплесах" соответствующий пункт "LiquidCrystalRus"?
UPD: Я в IDE 0023 опыт поставил.
Скетч из старт-топика тоже прогнал:
Binary sketch size: 3204 bytes (of a 30720 byte maximum)
Мне имя тоже не понравилось и я переименовал его в LiquidCrystalRus, потому что иначе работать не будет - имя библиотеки должно совпадать с именем каталога.
Может быть мы сейчас найдём причину? Первое, у меня сообщение об успешном завершении, на русском языке не выводится, только вопросительные знаки и цифры. А скетч не компилируется. Что или как можно проверить ? Хотел прикрепить свой скриншот, не получилось...
В examples только три папки AlphabetRus, HelloWorldRus, HelloWorldRusWH1601 У меня версия 1.0.1
Имя файла я тоже переименовывал в LiquidCrystalRus и тем не менее, у меня н выдаёт ошибку...
Стоп, а что такое IDE ?
А три вышеупомянутых примера побовали компилировать? На железку загружать не стоит - там, возможно несоответствие по пинам. Но вот компиляция должна проходить...
Загнал в Arduinu и теперь на экране пусто...
Из 19 поста компилируется, а остальные ошибка. Сейчас загнал свой скетч, на экран выводится. Пины у меня те же самые.
Ребята, а как посмотреть и сохранить скетч в самом Arduino ? Пробовал выбрать в меню Сохранить как, сохраняет только 2 байта. Что в общем то и не удивительно...
Загнал в Arduinu и теперь на экране пусто...
Что загнали?
И на каком экране пусто?
И что вы подразумеваете под "пусто"?
Ребята, а как посмотреть и сохранить скетч в самом Arduino ? Пробовал выбрать в меню Сохранить как, сохраняет только 2 байта. Что в общем то и не удивительно...
Размножаю/сохраняю скетчи именно через этот пункт меню. Сохраняется значительно больше 2 байтов.
Поэтому очень удивлен, что для вас "не удивительно" такое сохранение. Почему вы думаете, что сохранение должно работать столь экономным образом?
По порядку. Скетч из 19 поста, откомпилировал и залил в Arduino. Экран, это дисплей 16x2 с чипом HD4410 от какой- то бытовой аудио.
Пусто, означает ничего нет, никакой информации, кроме подсветки.
А не удивительно, потому что, меня так "научили" сохранять содержимое Arduino: подключаем Arduino к компьютеру, запускаем программу, кстати, что такое IDE ? и в меню Файл выбираем пункт Сохранить как. А что сохраняется этим, сказать забыли. Поэтому я и употребил "неудивительно". Так как, посмотреть и сохранить, содержимое Arduino ? Может быть, я не той программой пользуюсь ? Скачал с офсайта, версия 1.0.1 Но, никаких IDE нигде не замечал...
IDE - это среда разработки, то есть то, что скачали с оф.сайта.
Дисплей: про контрастность не забыли? Сразу после включения питания должен показать черные квадратики в верхней строке. Если нету - контрастность неправильная - ничего не увидете.
Что Вы хотите "сохранить как..."? Содержимое ардуины? Не получится, здесь как бы односторонняя связь. Сохранить можно только текст скетча, который на экране (загружен в IDE). Содержимое ардуины можно извлечь или программатором, или утилитой avrdude (есть в комплекте IDE). Но то, что извлечете является машинным кодом и годится только чтобы пихнуть это в дизассемблер. Но это для гуру ассемблера, ибо текст все равно нечитабельный и не всегда корректный.
Про IDE спасибо, а то думал, что за приложение люди упоминают ?
Контрастность не забыл. С моим сообщением, Hallo Walter, всё отображается нормально. Заливаю Ваш скетч из 19 поста и экран очищается. Заливаю обратно свой, всё нормально. Видимо проблема в Вашем скетче. Или распределении по пинам. Я брал инфу из datasheet, когда разбирался со своим дисплеем, поэтому номера у меня совпадают.
А, посмотреть и сохранить, я хотел инфу с Arduinо. Мне так и сказали, при первом подключении, обязательно сохрани инфу, чтобы потом не жалеть что, не сохранил. И научили как сохранять... Теперь с этим вопросом разобрался. Спасибо.
А по поводу сообщений, можете что- нибудь подсказать ? Если я выбираю язык интерфейса русский то, все сообщеня, об успешном завершении, выводятся вопросительными знаками. Видимо с кодировкой проблема. У меня Windows английский с русским MUI и, в реестре я внёс изменения: ...Nls- Code page- 1250 и 1252 я изменил на 1251. Может быть, что из- за этого проблемы ?
Проверте пины. Посмотрите на рабочем скетче - инициализация должна совпадать с Вашей.
Ну написал же, на рабочем скетче, всё работает. Не двигая ничего и ничего не перевтыкая, заливаю Ваш скетч- только подсветка. Опять, ничего не переключая и не передвигая заливаю рабочий, всё работает. Ну да ладно, Бог с ним, с этим скетчем. А что может быть причиной проблемы с другими, в частности с первым скетчем ? У Вас работает, а у меня, имя файла ему не нравится... Сама программа с офсайта скачана, библиотеку скачал с линка, что здесь давали на мк90. Может ещё какие библиотеки нужны или мешают ? У меня в examples нет LiquidCrystalRus, это нормально ? Судя по вопросу step962, должно быть. Или не должно ?
Dj первых, я просил проверить пины - имел в виду инициализацию в скетче, а не "железо", Вы же не приводите скетч, который работает, следовательно мне не с чем сравнивать.
Во вторых, если библиотека не появилась в меню IDE, то она не подключилась! Скачаный архив с того линка нужно распаковать в libriares и потом поменять имя каталога - я это уже писал, читайте советы внимательнее!
Давайте по порядку. Какой скетч я должен привести полностью ? Который у меня нe компилируется ? Если да то, это скетч из 1 поста и, Вами предложеный скетч, из 13 поста.
Библиотека не подключилась ? Согласен. Только, я всё сделал именно так, как Вы написали. Скачал. распаковал, переименовал в LiquidCrystalRus и положил в папку arduino/libraries. Или нужно было сначала положить в папку libraries и там распаковать и переименовать ? Странно, сейчас попробую так сделать...
Приведите тот, который у Вас работает.
После всех операций с библиотекой все это хозяйство должно выглядеть примерно так (сравните со своим вариантом):
Вот, рабочий скетч
К сожалению, я не знаю как здесь прикрепить изображение, поэтому опишу словами: в arduino/libraries/LiquidCrystalRus/ содержится папка examples и 5 файлов - COPYING, keywords.txt, LiquidCrystalRus.cpp, LiquidCrystalRus.h, README. А в папке examples лежат три папки, как и у Вас, на скрине.
Из пинов в initialize не хватает 9 - у меня по нему регулируется контрастность.
Правда, я не понимаю, почему на рабочем скетче, нужно проверять LiquideCrystalRus ?
Я попробовал вернуть в реестре прежние значения 1250 и 1252 с перезагрузкой, не помогло. А такое впечатление что, с кодировкой проблема. Только буквы в имени вроде обычные, не умляуты немецкие или что то подобное...
Плохо быть бестолковым... Кажется я понял, почему у меня экран пустой, Вы скетч пишете, считая что, контрастность резистором регулируется, а у меня по сигналу с 9 ножки. Сейчас поробую в Вашу программу добавить фрагмент из моей...