Дисплей 1202 драйвер STE2007 русский шрифт
- Войдите на сайт для отправки комментариев
Сб, 13/02/2016 - 03:29
Гуру прошу помощинашел хорошую библиотеку для дисплея 1202.
https://www.dropbox.com/s/hb7gho2eyh2t0yg/graphicsLCD.zip?dl=0
Пробывал использовать много наших библиотек но в них есть свои проблемы.
Эта библиотека очень быстро отрабатывает и отрисовывает.
но у меня проблема я не знаю как к ней прикрутить шрифты
Шрифты взяты с форума с библиотеки PCF8814_NEW
https://www.dropbox.com/s/47k00zl6u95gqzi/fonts.zip?dl=0
Ну только не пинайте меня ну не знаю я как это делается.
Если не ошибаюсь этот экран расскурил jeka_tm
Апну тему жду помощи!
А чего ждать то? Либу без регистрации не видно, я не готов регится для безвозмездной помощи. Наводящий вопрос: а вообще, без применения к экрану этому, у Вас с рускими буковками в ардуинку усьо гуд? Unicod не жмет?
Ссылки доступны без регистрации.
Я понимаю, что русские букавки должны быть в UTF-8, а как это организовать? Лално с ними с букавками как цифирки больше сделать?
Там есть цифирки, а как их исполтзовать?
Ссылка слава всевышнему, оно да, доступна. Дальше -
Чтобы скачивать и сохранять файлы прямо в Dropbox, создайте бесплатный аккаунт. Или войдите в аккаунт
На этом форуме валом тем про UTF-8 и в том числе как с ним боротся, ищите, и все будет. Поиск - друг а не матюк.
Размер зависит от либы. Или можно увеличить раза в 2-3 существующий шрифт (можно и больше но будет порнография) либо спец шрифт нужен большой, но он много места жрет.
теперь скачало, гляну.
глянул. Ничего интересного, шрифт только 5х8, без вариантов. Плохо что шрифты ОЗУ занимают. В общем слабоватка либа, шрифты если свои 5х8 то закиньте в graphicsLCD.h вместо родных. К стати про быстроту работы, она через digitalWrite побитно, это не быстро, можна раз в 5 быстрей.
Шрифты подктдывал но там что, с битами не понятно.
А посоветуйте либу ! использовал PCF8814_NEW но там PageONE и PageTWO но когда вывожу переменную то отрисовка медленно очень идет.
Шрифты подктдывал но там что, с битами не понятно.
А посоветуйте либу ! использовал PCF8814_NEW но там PageONE и PageTWO но когда вывожу переменную то отрисовка медленно очень идет.
Я именно такой экран не использовал и соответственно с его либами не знаком. Кроме того, как показывает опыт, либы, которые находятся как правило паршивенькие. Вы наверно это уже и сами заподозрили. Потому берете готовую за прототип и пишете свою. На примере либы для ssd1306, в ней вывод символа так:
Это мерзопакостно, т.к. символы выводятся попиксельно в промежуточный буфер который затем целиком отрисовывается. Требует много памяти и медленно. При этом есть возможность увеличить стандартный шрифт в разы и использовать увеличеные. Это гуд. Разобравшись в происходящем пишу себе так.
Выводим шрифты прямо на экран без буферизации, оптимизировано по скорости.
Попробуйте приживить, может чего и получится.
Что то не получается раскурить библиотеку.
Вот пример шрифта из библиотеки.
Вот кусок его обработки
и кусук команды вывода на экран
Я добавил в библиотеку шрифт кусок кода
И теперь у меня затык как это вывести на экран
Думал создать что то вроде
но моих познаний не хватает!
Может знающие подтолкнут на путь истинный.
Вы шрифты взяли из моей библиотеки. Я несколько по другому выводил символы. Попробуйте скопировать в шрифтах только сам массив данных и подставить в вашу библиотеку. Да, самое главное... первые несколько байт это парамерты самого шрифта, их видно и надо удалить.
P.S. Да, вижу сделали, но для информации не помешает.
И в предидушем посту Вам видно что в шрифте 10х16 нет русских символов, и вобще нет символов.
можно уточнить что за символы нужны? а то не очень понял
jeka_tm Необходим вывод установленной температуры и температуры измеренной.
В библиотеке шрифт 5х8 хотелось бы увеличить до 10х16 но вывод на дисплее идет построчный
hugoboss317 да я использовал ваши шрифты, пытался работать с вашей библиотекой но возник затык при повороте ручки энкодера, значения очень медленно выводились на экран.
Пробовал подставлять символы в библиотеку но какая-то беда с выводом то есть видно что экран пытается что то напечатать но там кракозябры.
Не совсем понял "Да, самое главное... первые несколько байт это парамерты самого шрифта, их видно и надо удалить." это где эти первые байты? прошу прощения
ну как вариант поставить эту либу. там вывод 10х16 уже есть. но она много оперативной памяти съедает
http://arduino.ru/forum/programmirovanie/biblioteka-dlya-lcd-nokia-1100?...
Да я эту библиотеку пытался использовать но у меня возникла проблема с выводом переменной.
для вывода переменной постараемся сделать в ближайшее время
пока можешь разбивать на числа и выводить
для вывода переменной постараемся сделать в ближайшее время
пока можешь разбивать на числа и выводить
Еще бы знать как ))))
смотря какие. если целые разбивать используя деление / и %
если с плавающей запятой
http://arduino.ru/forum/programmirovanie/biblioteka-dlya-lcd-nokia-1100?...
Надо будет попробывать но вечером у меня два показателя температуры
1. Установка от 200 до 480 градусов выберается энкодером
2. Измерение температуры ну и соответственно условие если меньше греем, если больше ждем, упало опять греем.
Все пытаюсь уместить на мегу 8 пока вернее все помещается но хочется цифирки побольше.
в мегу 8 моя библиотека не полезет. оперативки не хватит. можешь даже не пробовать
тебе нужна тогда либа hugoboss317 и туда впихивать вывод другого шрифта
Не совсем понял "Да, самое главное... первые несколько байт это парамерты самого шрифта, их видно и надо удалить." это где эти первые байты? прошу прощения
Вот поэтому кракозяблы и выходят.В моей библиотеке можно менять фрифты "по ходу пьесы" то есть на экран печатать разные одновременно, так же можно увеличивать и выводить укороченные символы типа точек , запятый, двоеточей и т.д. Но при смене шрифта для вывода надо знать его параметры (длина, ширина и др.). Так вот первые семь байт это и есть параметры и читаются при выборе шрифта. Сами символы начинаются после, а Ваша библиотека начинает читать сразу символы и данные смещаются на 7 байт и получается бурда. Если у Вас Atmega 8 или 16, то библиотеки с полноразмерным массивом не подойдут. Мы это с jeka_tm уже доказали :). Подошла бы моя, но она долго выводит и это так. У меня где-то было биба, которая выводит без массива но только по строкам и шрифты можно менять, могу поискать... Я её тут гдетто показывал.
Продублирую:
Выложил библиотеку дисплея Nokia 1202 версия 1.4. Добавил функцию print. Выводит на дисплей целочисленные значения int, long, byte.
C float нужно колдовать, пока не заморачивался этим. Вывод циферок добавил в пример, старая версия доступна в архиве, как и все предыдущие.
спасибо Gres. времени катастрофически не хватает
только функцию drawString можно тоже в print переименовать. не знаю механизм, но функция с одинаковыми названиями, но разными типами данных нормально читаются, судя по одной либе, ардуина/компилятор сами выбирают нужную
только функцию drawString можно тоже в print переименовать. не знаю механизм, но функция с одинаковыми названиями, но разными типами данных нормально читаются, судя по одной либе, ардуина/компилятор сами выбирают нужную
Спасибо jeka_tm, дельное замечание, поправил библиотеку еще раз и выложил следующий релиз:
библиотека дисплея Nokia 1202 версия 1.5.
В текущей версии функция print выводит на дисплей целочисленные значения int, long, byte и строки.
C float нужно колдовать, пока не заморачивался этим. Старая версия доступна в архиве, как и все предыдущие.
Теперь пример вывода выглядит так:
Версия 1.5
Убрана функция DrawString, теперь текстовые строки и целочисленные форматы(byte, int, long) выводятся одной функцией print.
Функция SetCursor_DrawString_1607 переименована в print_1607.
Все остальное без изменений.
Естественно применяя эту библиотеку для созданных со старыми версиями библиотеки скетчами, в последние придется внести необходимые замены, то есть, переименовать в стары скетчах функцию DrawString в print и SetCursor_DrawString_1607 в print_1607.
Работа с типом float в проекте. Библиотека с дисплеем работает очень быстро, но потребляет слишком много памяти из за встроенных шрифтов, которые при необходимости(ненадобности) можно частично или полностью исключить, а так же исключить не используемые функции.
Добавил видео демо, кому интересно.
хорошо. спасибо. шустро правишь))
для float может нужно будет добавлять еще один параметр в функцию для количества знаков. надо разбираться
хорошо. спасибо. шустро правишь))
для float может нужно будет добавлять еще один параметр в функцию для количества знаков. надо разбираться
Пока под рукой все, чтоб можно было проверить в железе и есть время немного. :)
С float да, нужно вкуривать. Вот кусок из print.cpp, стандартного из IDE, что то слишком мудрено все:
Вообще выводил я проще, делив на целые и дробные части и собрая все в строку, вставив знак точки или запятой.
да мудренно. float можно выводить действительно разделив части. передать дополнительный параметр сколько знаков после запятой
а у в функции разделить, домножить. и выводить по частям
разделив части. передать дополнительный параметр сколько знаков после запятой
часто надо менять кол-во знаков после запятой? это уже лишнее. с датчика температуры и десятой хватит.
а от флоата вообще лучше уходите.
мне обычно от 1 до 2-3 знаков вполне хватает. но флоат редко использую
Точно не помню, вроде в CodeVisionAVR программил для 2313, как только используешь float, памяти сразу процентов на 60 убавляется. Тогда и стал разбивать на составные, а потом в строке из них число собирать. С этим все понятно и в библиотеке нужно делать именно так, а делать нужно для того, что это библиотека и предназначена для удобства, пользователь как можно меньше должен мозг напрягать, именно для этого все и собрано в библиотеку. Ну это мое лично такое мнение. Я прекрасно и отдельными функциями пользуюсь. для чего вообще нужен float, ну мало ли, может человек захочет сделать на 2560 термометр и выводить с него данные на 1202 и это будет единственной задачей для пушки. :)
сделать на 2560 термометр и выводить с него данные на 1202
а данные термометр конечно в типе флоат передает по одновару, разделяя каждый знак запятой.
не знаю механизм, но функция с одинаковыми названиями, но разными типами данных нормально читаются, судя по одной либе, ардуина/компилятор сами выбирают нужную
Это нарывается перегруженая функция.
А по количеству знаков после запятой действительно можно задавать как аргумент функции, а в протатипе можно по умолчаию, к примеру, один указать. Если не указывать при написании кода, будет десятые, нужны сотые, указать 2 и т.д. В классе print по умолчанию 2. А сколько нужно знаков после запятой должен решать каждый сам под свой проэкт а не >> одного хватит... зачем больше <<