Использование сторонних шрифтов
- Войдите на сайт для отправки комментариев
Пнд, 23/02/2015 - 10:04
Помогите, плиз, новичку в програмировании. Как подключить сторонний шрифт знаю, подцепил к скетчу, пытаюсь использовать так:
tft.setFont(DotMatrix_M);
Библиотека SWTFT ругается и говорит "не помню такой команды". Что посоветуете?
есть в начале #include <Adafruit_GFX.h>?
Да, эта библиотека подключается автоматически вместе с SWTFT. Может попробовать другую версию этой библиотеки?
Насчёт автоматически не знаю, но пока не пропишу два инклуда GFX и SWTFT не пашет
Adafruit_mfGFX надо такую именно мультифонт которая
Сейчас поищу в инете, опробую.
Скачал, установил, всё-равно ругается.
Больше ни кто ни чего не посоветует?
Знатоки, помогите...
Закопипасте сюда сообщение об ошибке без самодеятельности, в вашем пересказе можно только гадать о том какая у вас проблема
Пишет так:
Вот собственно скетч:
По моему вполне четко компилятор указывает что в SWTFT нет функции/процедуры/команды setFont.
Проверьте документацию на библиотеку или посмотрите исходники. Очень может быть что ошиблись регистром/структурой при написании команды.
Оно понятно, что нет в библиотеке SWTFT "void setFont()". Это единственная библиотека, работающая с драйвером моего дисплея. От-того и вопрос: "прикрутить" данную библиотеку к "UTFT", или как-то в самой SWTFT сделать процедуру подключения сторонних шрифтов.
"Выдрал" void setFont() с библиотеки UTFT, прописал соответственно вместо UTFT SWTFT, прописал её в SWTFT.h, компилирую, шибко ругается. Переименовал её в библиотеке void setFont8() - ошибка как и в первом посту:
'class SWTFT'
has no member named
'setFont'.
А вот так ругается, когда в имени нет восьмерки:
Похоже проще перенести из SWTFT в UTFT драйвер инициализации дисплея чем фукцию. У вас затребовали еще 2 переменных и 3 функции добавить.
Каким образом это сделать? Я в языке С как свинья в апельсинах. Пробовал свои силы в Delphi 7, написал пару программ для работы, но Си для меня вооще "темный лес" только начал осваивать. Есть даже компилятор на Delphi для програмирования контроллеров, но и там синтаксис другой. Более упрощённый, что-ли. Помогите если не сложно...
Не кому помочь моему "горю"?
Вспомнился прочитанный где-то анекдот про форумы:
Американский форум: задаёшь вопрос, в ответ: Расскажут, покажут, объяснят, научат...
Еврейский форум: задаёшь вопрос, в ответ: "А шо это? "А зачем Вам это надо?"
Русский форум: задаёшь вопрос, в ответ: "Дурак, зачем лезешь туда, где ни чего не понимаешь", "Найди ошибку сам"...
Действительно, а для чего форум?
За крывайте тему.
Немного порискав по библиотеке "Adafruit_GFX" я тоже не нашол "setFont". Только стандартный шрифт. :(
Немного порискав по библиотеке "Adafruit_GFX" я тоже не нашол "setFont". Только стандартный шрифт. :(
В этой библиотеке как-раз и есть "setFont", но всё разруливает, как я понял "SWTFT". Дудка и выдаёт ошибку, что в классе "SWTFT" нет функции "setFont"...
Я лично нашол вот такие только:
В UTFT.h дествительно есть данный метод:
Думаю все намного проще, в библиотеке "Adafruit_GFX.h" есть файл "glcdfont.c" - вот здесь шрифт и его форма, если немного подправить файл, то можно и другую форму задать шрифту.
Вот еще что-то нарыл, зараз нету особо времени копать, ну направление думаю указал
http://mcuguru.ru/2013/03/utft-rus-1/
http://www.rinkydinkelectronics.com/r_fonts.php
так же немного поколупал форум нашол как можно изменить текущий шрифт.
http://arduino.ru/forum/obshchii/russkie-simvoly-lcd-5110#comment-84215
http://arduino.ru/forum/obshchii/russkie-simvoly-lcd-5110#comment-84255
vitalikost, спасибо за отклик. Но теперь я ещё больше ни чего не понимаю. Эти статьи и форум я читал. Сейчас провёл несколько экспериментов. Удалил из библиотеки "Adafruit_GFX.h" файл "glcdfont.c", всё-равно шрифт рисуется. Подставил файл "glcdfont_rus.c", появился русский шрифт, но всё такой-же убогий(как я понял, шрифт 5х7, для размера 1, 2 ещё пойдёт. А если брать больший размер - то это ужас). Так вот. Заменил "glcdfont_rus.c" на родной шрифт библиотеки. Русские символы всё-равно остались. Как так ?
Вот чего не могу понять. Удаляю файл шрифта - работает. Копирую другой шрифт - всё по прежнему...
Немного поколупал библиотеку "Adafruit_GFX.h" , нашел где нужно править, чтобы построить другой шрифт:
таким способом вставить шрифт 16Х16 из http://www.rinkydinkelectronics.com/r_fonts.php запихнуть в "glcdfont_rus.c" - немного его под редактировав. заменить 8 и 6(5) на 16 и 17(16). в коде указанном выше. И все должно завестись. Ну это так теория. Которую еще нужно проверить.
Сейчас осмыслю и буду пробовать...
Попытался прикрутить, фиг вам.... Почал дальше смотреть, и тут полный писец... В библиотеке "Adafruit_GFX.h" вывод по столбцам, а в «UTFT.h» шрифты закодированы в строках, тоесть вывод построчно. Так что надо будет функцию «drawChar» переписать полностью.
Есть такая библиотека "Adafruit_mfGFX" которая предусматривает работу с 8 шрифтами(идут вместе с библиотекой). Но она довольно спецефична, написана для работы с монохромным дисплеем "Sharp". Так в ней как раз функция «drawChar» и написана для работы с этими шрифтами. Пробовал "подменить" в "Adafruit_GFX.cpp" на "Adafruit_mfGFX.cpp", соответственно изменив имя, и добавив эти шрифты, компилятор ругается на последнюю строку в "Adafruit_GFX.h":
Не "нравится" ему звездочка и что константа без названия типа. А какой тип? Для меня - тупик...
Направление понял, завтра постраюсь посмотреть. Ну на крайний случай с вторника. попробуем целиком подменить ""Adafruit_GFX"" на "Adafruit_mfGFX.cpp", посмотри что получиться.
Я, как раз, целиком и менял и .h файл и .cpp файл, не забыв конечно, поменять имена и убрав лишние #define.
Собрал, даже работает графика. Ну текст не выводит.
https://yadi.sk/d/XVLgae33f5REp
Ссылка "битая", не могу открыть...
https://yadi.sk/d/RNdgTlOef5TkY
Порешали вопрос со шрифтами?
Шрифт меняется. На латинице получилось по крайней мере. попробуй как указано в мануале на 20 странице
https://learn.adafruit.com/downloads/pdf/adafruit-gfx-graphics-library.pdf
Как я понял, вопрос остается открытым...
Есть ресурс: , но как им воспользоваться... скачал file.c типа например arial_bold.c
Как бы все расписано, но что с этим делать?
"Что делать" определяется тем, что именно Вам нужно.
Если Вы не знаете, что делать со скачанным файлом, закачайте его обратно.
?
Ничего не понял из вышеизложенного, к сожалению.
Могу только сказать что-таки - да: в "Adafruit" дела со шрифтами обстоят не лучшим образом и настолько, что пришлось даже купить другой дисплей, который работает под UTFT и со шрифтами там всё на порядок проще, что даже я кое-как разобрался.
Насчёт "прикрутить шрифт".
Не далее как сегодня вдруг возникла необходимость выводить некоторые значения более удобочитаемым шрифтом. Понятное дело что разговор идёт о совершенно другой библиотеке, да еще и под рукой нет ни IDE ни плат, но все же.
В "UTFT" внешние шрифты подключаются вот так:
где "BigFont[]" это файл "BigFont.c", который я, кстати, так нигде и не нашёл почему-то. Ну а что бы подключить любой другой шрифт, достаточно скачать соответствующий файл шрифтов с расширением ".c", положить его в папку со скетчем и потом вызывать с помощью того же "setFont". Во всяком случае у меня этот метод работает...
Но я сейчас не об этом. Интересно вот что: во это "extern uint8_t" (приминительно к шрифтам) работает только для UTFT или для Adafruit тоже?
привет, может кто поможет в вопросе? При установке сторонних шрифтов ,а именно при использовании цифр, когда меняются показания, то на экране начинается каша. старые показания не затираются. много читал старался где то найти информацию, но увы и ах , ничего про это нигде не сказано. изучал разные скетчи, подозреваю, что нужна какая то функция в скетче, но пока так и не нашел решение. Может кто подскажет где капать?