TVout - в чем проблема?
- Войдите на сайт для отправки комментариев
Добрый всем вечер.
Столкнулся опять-таки с непонятной ситуацией.
Скетч для вывода через TVout, содержащий:
#include <TVout.h>
компилируется и выполняется без проблем. Но если взять любую программу со строками:
#include <TVout.h> #include <fontALL.h>
она уже не компилируется! Причем сразу же - не находит fontALL.h Я качал три разных версии библиотеки "TVout" и ни в одной не было этого fontALL.h. Отдельно на гитхабе я находил этот файл, но там вокруг него еще масса других файлов. Я, для верности, скопировал все что там были в папку с библиотекой, но компиляция все равно не проходит.
Еще что странно, как только в программе встречается вызов типа: TV.set_cursor(0,6); - сразу пишет: 'TV' was not declared in this scope.
Я поискал по форуму - вроде никто не сталкивался с такой проблемой.
Что я делаю не так на этот раз?
TV у Вас не объявлен, а файл fontALL.h не находится.
Что я делаю не так на этот раз?
Давайте подождём пока какой-нибудь Сноуден украдёт у Вас код и выложит его в сеть. Тогда и посмотрим. А так, без кода, ХЗ что Вы там делаете.
TV у Вас не объявлен, а файл fontALL.h не находится.
Да, спасибо. Это именно то, что я имел ввиду.
Что я делаю не так на этот раз?
Давайте подождём пока какой-нибудь Сноуден украдёт у Вас код и выложит его в сеть. Тогда и посмотрим. А так, без кода, ХЗ что Вы там делаете.
Да ничего особенного и не делаю, собственно: беру пример из библиотеки и пытаюсь его запустить на ардуино и при этом - что-то увидеть на экране. Но зачастую пример даже не компилируется. Меняю библиотеку - тоже самое. Читаю что пишет компилятор и оказывается что он просто не находит чего-то там где-то там. Начинаю вникать, а оказывается "WProgram.h" давно уже переименовали в "Arduino.h", просто единственное место где об этом можно узнать, это там, куда я, случайно, зашел.
В общем взял самую последнюю бэту TVout, кое-как добился компиляции без замечаний, заливаю скетч, но на экране ничего. Причем более ранняя версия отображала на экране свой простенький пример, но функционал у той библиотеки просто-таки не впечатляет:
Как видите, никакого намека на "TV.set_cursor"...
Я уже почти слышу как Вы начинаете негодовать, особенно после слов: "кое-как". Вот "то", что не вызывает возражений у компилятора, но напроч не запускается:
#include <TVout.h> #include <fontALL.h> #include "TVOlogo.h" TVout TV; void setup() { TV.begin(PAL,120,96); TV.select_font(font6x8); intro(); delay(1000); } void loop() { } void intro() { unsigned char w,l,wb; int index; w = pgm_read_byte(TVOlogo); l = pgm_read_byte(TVOlogo+1); if (w&7) wb = w/8 + 1; else wb = w/8; index = wb*(l-1) + 2; for ( unsigned char i = 1; i < l; i++ ) { TV.bitmap((TV.hres() - w)/2,0,TVOlogo,index,w,i); index-= wb; TV.delay(50); } for (unsigned char i = 0; i < (TV.vres() - l)/2; i++) { TV.bitmap((TV.hres() - w)/2,i,TVOlogo); TV.delay(50); } TV.delay(3000); TV.clear_screen(); }Это был длинный пример из бэты TVout, который я свел к минимуму, лишь бы что-то увидеть. "fontALL.h" и "TVOlogo.h" не трогал, надеясь что там всё впорядке.
То есть, другими словами - проблему со шрифтами я уже решил: библиотека "TVoutfonts", в которой и хранится "fontALL.h", присутствовала только в комплекте с "TVoutBeta1". Однако же, исходя из того что это-таки бэта, я даже не могу надеятся на то, что Вы попытаетесь разобраться в чем дело.
Сама библиотека: http://www30.zippyshare.com/v/YL6FIBlO/file.html
Я качал три разных версии библиотеки "TVout" и ни в одной не было этого fontALL.h. Отдельно на гитхабе я находил этот файл, но там вокруг него еще масса других файлов. Я, для верности, скопировал все что там были в папку с библиотекой, но компиляция все равно не проходит.
Вот от СЮДА качаешь папки TVout, TVoutfonts. Кладешь их в папку C:\Users\%UserName%\Documents\Arduino\libraries
P.S. Не надо копировать всё в одну папку TVout. Они должны лежать раздельно, как и на гитхабе.
Я качал три разных версии библиотеки "TVout" и ни в одной не было этого fontALL.h. Отдельно на гитхабе я находил этот файл, но там вокруг него еще масса других файлов. Я, для верности, скопировал все что там были в папку с библиотекой, но компиляция все равно не проходит.
Вот от СЮДА качаешь папки TVout, TVoutfonts. Кладешь их в папку C:\Users\%UserName%\Documents\Arduino\libraries
P.S. Не надо копировать всё в одну папку TVout. Они должны лежать раздельно, как и на гитхабе.
А что библиотеки не обязательно должны находиться в папке с компилятором? Или они должны быть и там и в папке с моими скетчами?
Папка "libraries" есть же и в "C:\Users\%UserName%\Documents\Arduino" и в папке с компилятором.
1. После распаковки в "C:\Users\%UserName%\Documents\Arduino\libraries" получается папка "arduino-tvout-master". Это так и должно быть?
2. А если эту папку поместить в такую же "libraries", но в папке компилятора, это будет правильно, не правильно или некритично?
3. Найдёт ли компилятор "TVout.h" в папке "arduino-tvout-master" ?
---------------------------------------------------------------------------------
Если распаковать в корень без папки ""arduino-tvout-master"", то вылазит вот что:
Arduino: 1.6.8 Hourly Build 2016/02/19 10:33 (Windows 8), Плата:"Arduino/Genuino Uno" C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp:96:18: error: no 'void TVout::end()' member function declared in class 'TVout' void TVout::end() { ^ C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp: In member function 'void TVout::draw_line(uint8_t, uint8_t, uint8_t, uint8_t, char)': C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp:307:25: error: 'draw_column' was not declared in this scope draw_column(x0,y0,y1,c); ^ C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp:309:22: error: 'draw_row' was not declared in this scope draw_row(y0,x0,x1,c); ^ C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp: At global scope: C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp:388:71: error: no 'void TVout::draw_row(uint8_t, uint16_t, uint16_t, uint8_t)' member function declared in class 'TVout' void TVout::draw_row(uint8_t line, uint16_t x0, uint16_t x1, uint8_t c) { ^ C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp:442:73: error: no 'void TVout::draw_column(uint8_t, uint16_t, uint16_t, uint8_t)' member function declared in class 'TVout' void TVout::draw_column(uint8_t row, uint16_t y0, uint16_t y1, uint8_t c) { ^ C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp: In member function 'void TVout::draw_rect(uint8_t, uint8_t, uint8_t, uint8_t, char, char)': C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp:505:25: error: 'draw_row' was not declared in this scope draw_row(i,x0,x0+w,fc); ^ C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp: In member function 'void TVout::draw_circle(uint8_t, uint8_t, uint8_t, char, char)': C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp:543:37: error: 'draw_row' was not declared in this scope draw_row(y0,x0-radius,x0+radius,fc); ^ C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp:564:31: error: 'draw_row' was not declared in this scope draw_row(y0+y,x0-x,x0+x,fc); ^ C:\Users\Admin\Documents\Arduino\libraries\TVout\TVout.cpp:568:31: error: 'draw_row' was not declared in this scope draw_row(y0+x,x0-y,x0+y,fc); ^ Несколько библиотек найдено для "TVout.h" Используется: C:\Users\Admin\Documents\Arduino\libraries\TVout Не используется: C:\Users\Admin\Documents\Arduino\libraries\arduino-tvout-master exit status 1 Ошибка компиляции. Неверная библиотека найдена в C:\Users\Admin\Documents\Arduino\libraries\examples: C:\Users\Admin\Documents\Arduino\libraries\examples Неверная библиотека найдена в C:\Users\Admin\Documents\Arduino\libraries\examples: C:\Users\Admin\Documents\Arduino\libraries\examples This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.Если распаковать библиотекой ""arduino-tvout-master"", то тогда вот что:
Arduino: 1.6.8 Hourly Build 2016/02/19 10:33 (Windows 8), Плата:"Arduino/Genuino Uno" C:\Users\Admin\Documents\Arduino\TV_OUT_BETA\TV_OUT_BETA.ino:2:21: fatal error: fontALL.h: No such file or directory #include <fontALL.h> ^ compilation terminated. exit status 1 Ошибка компиляции. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.А что библиотеки не обязательно должны находиться в папке с компилятором? Или они должны быть и там и в папке с моими скетчами?
Пользовательские библиотеки должны быть там, где я написал - C:\Users\%UserName%\Documents\Arduino\libraries
1. После распаковки в "C:\Users\%UserName%\Documents\Arduino\libraries" получается папка "arduino-tvout-master". Это так и должно быть?
Нет. Распакуйте архив на рабочий стол. Из папки arduino-tvout-master извлеките папки TVout, TVoutfonts и поместите их в вышеуказанную папку libraries.
2. А если эту папку поместить в такую же "libraries", но в папке компилятора, это будет правильно, не правильно или некритично?
Некритично. Но пользовательские библиотеки желательно устанавливать в Documents (Мои документы)
3. Найдёт ли компилятор "TVout.h" в папке "arduino-tvout-master" ?
Нет. Структура папок библиотек должна быть чёткая и не должно быть никаких лишних папок (уровнем выше). Откройте и посмотрите структуру нескольких библиотек.
Что-то Вы там кучу библиотек в разные места пораспихали. Так не должно быть. Удалите из C:\Users\Admin\Documents\Arduino\libraries\ папки arduino-tvout-master и examples. Должны остаться только TVout и TVoutfonts.
Что-то Вы там кучу библиотек в разные места пораспихали. Так не должно быть. Удалите из C:\Users\Admin\Documents\Arduino\libraries\ папки arduino-tvout-master и examples. Должны остаться только TVout и TVoutfonts.
Так у меня так и было сначала! Вот так:
P.S. Не надо копировать всё в одну папку TVout. Они должны лежать раздельно, как и на гитхабе.
Я не делал! Я и размещал только папки "TVout" и "TVoutfonts" в корневом "libraries" !
Дело в том что в корне папки "arduino-tvout-master" лежат еще какие-то файлы...
А изначально у меня были только папки "TVout" и "TVoutfonts", и лежали они не в папке со скетчами/libraries, а в папке с компилятором/libraries и он прекрасно их находил, но скетчи, хоть и компилировались в белый, все равно не работали.
В общем я считаю что либо проблема в железе, либо в библиотеках. Потому что я с этой версией библиотеки пытался вывести на экран что-то через "TV.print(x,y,"Hello")" и на экране была всё та же пустота. Но если менять координаты строки - начинало что-то мигать, огромное такое.
Добрый всем вечер.
Столкнулся опять-таки с непонятной ситуацией.
Скетч для вывода через TVout, содержащий:
компилируется и выполняется без проблем. Но если взять любую программу со строками:
она уже не компилируется! Причем сразу же - не находит fontALL.h Я качал три разных версии библиотеки "TVout" и ни в одной не было этого fontALL.h. Отдельно на гитхабе я находил этот файл, но там вокруг него еще масса других файлов. Я, для верности, скопировал все что там были в папку с библиотекой, но компиляция все равно не проходит.
Еще что странно, как только в программе встречается вызов типа: TV.set_cursor(0,6); - сразу пишет: 'TV' was not declared in this scope.
Я поискал по форуму - вроде никто не сталкивался с такой проблемой.
Что я делаю не так на этот раз?
Маленький совет за одно примерно о том же - очистить папку TEMP иной раз помогает, особенн новой супер глючной версии 1.6.8.
Спасибо, попробую что получится. А какая версия самая неглючная?
----------------
Вот поставил 1.6.7, которая раньше стояла и ни один скетч не компилируется:
Спасибо, попробую что получится. А какая версия самая неглючная?
Фиг его знает! У меня была какая-то 1.0.5 R2 что ли, скачал по первой же нагугленной ссылке работало всё без проблем. Отличалось лишь видом списка примеров. Вот решил обновиться и получил западло и с платой Леонардо, и с отказом компилировать на ровном месте (комментирую строку или переношу чуть ниже - все отлично), и при загрузке в UNO то и дело выдаёт ошибка загрузки, хотя оно уже внутри и работает как надо... Хлам!
Короче, я думал только у меня эта хрень происходит.
История такая. Скачал сразу обе 1.6.7 и 1.6.8, однако 1.6.8 называлась "windows nightly" и я ее пока отложил в сторону. Пока юзал только 1.6.7 - было всё нормально (винда -8.1х64). Потом решил попробовать 1.6.8 и в результате похерились обе - не компилируют заранее рабочие скетчи, хоть ты тресни! После глубокой чистки компьютера стал пользоваться 1.6.8 потому что только она захотела хоть что-то делать. У меня "portable" версии обоих и устанавливать их не приходилось.
Параллельно с ардуиной мучался мой приятель, но у него была предустановлена 1.6.7, (установочный пакет на хрюше) и что странно - когда я давал ему исходники скетчей, отлаженные в моей 1.6.8, у него они напроч не компилировались с какими-то совершенно дикими ошибками, навроде тех, что я показал выше. Я дал ему свою 1.6.8 и дело, вроде, пошло. Так мы и остановились на это версии.
А вчера после Вашего замечания, попробовал перейти назад на 1.6.7 и результат: на обоих системах - 8.1х64 и ХР - не пошло!
Попробуй найти папку tvout
В ней есть папка TVoutfonts скинуть все файлы в tvout.