Свежие обсуждения
Микроконтроллеры

Вывод текста на графический LCD

1 2

Сделал я тут вывод текста на графический LCD, используя стандартное знакоместо 5 х 8 пикселей, ну и не понравилось что-то. Корявенький. Какой смысл графический применять, если и на символьном та же графика.
Посему возник вопрос. А если, например, под символ отвести 10 х 16 пикселей, будет лучше смотреться или нет? И где взять графику таких символов? Интересует именно субъективное восприятие и начертание таких символов. А еще конкретнее, только букв русского алфавита и цифр. Что касается программной части и кодов знакогенератора, это уж я как-нибудь сам напрягусь.

 

1. Смотреться будет лучше.
2. Я рисовал символы сам. Может быть, в природе есть готовые, не знаю. Проще всего сделать это в Linux - там есть один очень интересный формат графического файла - xpm. Это по сути, исходный текст объявления картинки в программе на языке С (правда, не очень экономное). Спросите Num Lock-а, он, думаю, подробнейше все расскажет

 

Если LCD именно графический(не путать с символьными) типа WG12864,то писать самому.
Есть програмка lcdstudio http://www.lcdstudio.com/site20/download.php
Там много чего есть

 

Здесь http://invent-systems.narod.ru/IR_scaner.htm приведен пример программы для PIC18 в которой полностью создан генератор символов для работы с графическими индикаторами.

 

Глянул я pictele: http://www.lcdstudio.com/site20/download.php
Что-то не понравилась.
pictele: то писать самому
А я и не отказываюсь. Просто одно дело кодировать, другое - рисовать. Лень заниматься рисованием, вот и спрашиваю, может че готовое подходящее есть.

Catcatcat: в которой полностью создан генератор символов для работы с графическими индикаторами.
Посмотрел. Ну и чего там? Стандартный 5х8. Ничего другого не увидел.

 

Zandy,
я выводил строку всех символов в один ряд, "грабил" ее с экрана в bmp файл, а затем переводил (самопальной программой) в ассемблерные строки DB.
Для генерации строки удобно использовать менеджер FAR (в оконном режиме). Шрифты лучше выбирать растровые.
Если интересует этот метод, поищу свои наработки (может растянуться до понедельника, т.к. искомые материалы могут быть на работе).

 

Zandy: А я и не отказываюсь. Просто одно дело кодировать, другое - рисовать. Лень заниматься рисованием, вот и спрашиваю, может че готовое подходящее есть.
Есть столько красивых шрифтов - выбрать найдется из чего. Так мне казалось. Взял готовый Courier New, в Paint разчленил его по пикселям, залил в графический LCD - не понравилось. Много ресурсов жрет. Нарисовал свой - можно можно в Paint, а то и специальную программку сварганить - может не только интерактивно символы рассматривать, но сразу и код генерит. Нормально. И в изделие не пошло совсем по другой причине - у заказчика деньги кончились В общем, я бы советовал взять для начала готовый шрифт и на его основе откорректировать под свои нужды. Лично мне нравится Courier и терпеть не могу Times

 

IDiod: Если интересует этот метод, поищу свои наработки (может растянуться до понедельника, т.к. искомые материалы могут быть на работе).
Ничего страшного. У меня пока не горит.

Мне думается, что все-таки лучше, чтобы высота была кратна 8 пикселям. Ведь в индикаторе банк как раз 8 х 64 пикселя и заполняется по столбцам из 8 пикселей с автоматическим инкрементированием счетчика адреса. Конечно, самое простое, когда высота шрифта 8 пикселей. Задаешь начальный адрес и вперед без проблем. Только кристаллы переключай, когда доходишь до 64-го пикселя. Если высоту сделать 16 пикселей, то немного сложнее, но тоже просматривается. Просто один символ расчленится на два банка, но с одной и той же координатой по Х. Т. е. банки будут заполняться по полноценному столбцу. 24 пикселя на высоту символа - это уже перебор. Слишком крупный.
А вот высота, не кратная 8, ну типа 10 - 14 - как с таким шрифтом работать? Ничего хорошего не могу придумать. Ну, если только по точкам выводить. Но это как-то сложно получается и самое главное долго.

Конечно, можно было бы сделать полный экран с нужными фразами, запоминать его полностью и выводить его, когда надо. Это совсем просто сделать. Но тогда мне надо иметь память на 20 полных экранов, а это уже в МК не влезет.

Поэтому и решил, что для меня самое подходящее - высота шрифта 16 пикселей. Вроде и програмно не очень сложно, и все фразы, которые мне надо выводить, влезают в экран. Подумал, что такой шрифт (высотой 16) можно откуда-то передрать, чтобы не заморачиваться с рисованием каждой буквы. Реально он конечно должен быть высотой 14 пикселей для заглавных букв (2 пикселя - расстояние между строками) и 12 пикселей для строчных.

 

Пришёл в голову такой доморощенный способ отрисовать буквы. В любом графредакторе выводим на экран алфавит (размер букв побольше), затем меняем палитру на чисто ч/б, затем потихоньку уменьшаем размер рисунка, пока буквы не станут высотой в нужное количество пикселов, сохранив изначальное начертание. Останется только увеличить и распечатать - вот и попиксельные формы для побитового заполнения шрифтохранилища. Получится, за вас рисовал профессионал-дизайнер шрифтов.
Zandy: тогда мне надо иметь память на 20 полных экранов, а это уже в МК не влезет.
Ну, это даже я знаю, как преодолеть - добавить миниатюрную 8-выводную ПЗУшку с последовательным доступом. Они вроде бывают до нескольких мегабайт - хватит на целый фильм.

 

Zandy: А вот высота, не кратная 8, ну типа 10 - 14 - как с таким шрифтом работать? Ничего хорошего не могу придумать.
А какие сложности ? Например, 12 - а нижние 4 бита пойдут на промежутки между строками.
Мне приходилось работать и с LCD, у которых байт разворачивается не по вертикали, а по строке - вот там пришлось поковыряться. Хотя тоже - не самое сложное, что было в проекте. Зато высоту символа можно было брать какую хочешь.