реклама на сайте
подробности

 
 
> Вывод на LCD 76х16, Нужны либы
Shivers
сообщение Apr 2 2012, 07:37
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Всем привет!
Подключаю Винстаровский дисплей LCD монохром 76х16 точек ( http://catalog.compel.ru/file/oled/WINSTAR...ABPP5N00000.pdf ). Задача - алфацифровой вывод без графики, в одну строку. Т.е. желаемый размер символов 16х16, или лучше 16х8, либо что то навроде, но не 8х8 (слишком мелко получится).
Вопрос в том, встречал ли кто готовые растровые (или еще какие, попроще) либы, или вообще готовые модули с генератором символов под ARM (у меня STM32F407)?

И второй вопрос - если писать самому, как лучше делать?
Пока мысли такие: можно задать символы в виде массивов констант, затем писать в память для формирования страницы, и потом уже вызывать дма для копирования на дисплей. Может, как то по другому это делается? Хочется сделать просто/компактно. И еще хочется готовую либу )
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
sevastianovd
сообщение Apr 2 2012, 09:08
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 8-04-08
Из: Омск
Пользователь №: 36 562



насколько я понял, либа непосредственно для работы с контроллером LCD у вас есть.
когда-то развлекался с LCD бОльшего размера и задался тем-же вопросом: как увеличить шрифт.
у меня был набор шрифтов 5х7, в результате сделал функции масштабирования шрифта в целое число раз, т.е. 5х14, 10х14, 15х21 и так далее, смотрится естественно кривовато, если интересно проект скину.

для вашего LCD достаточно иметь набор шрифтов и никакой обработки не делать.
ps а зачем вы планируете dma, объем информации небольшой да на параллельный интерфейс?

еще встечал кучу готовых примеров с библиотеками для LCD вместе с операционкой uOSIII (micrium)
Go to the top of the page
 
+Quote Post
Shivers
сообщение Apr 2 2012, 09:51
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Спасибо!
Ну, в качестве либы наверно стоит FSMC использовать, доступ к LCD как к SRAM. А можно и обычный i/o вывод, только строб записи придется дергать.
По поводу дма .. не знаю. Пожалуй, вы правы: экран маленький, не нужно здесь дма. Я хотел дма использовать для более быстрого обновления экрана, поскольку страничного режима у этого контроллера нету.

Масштабирование не очень интересно, потому что и правда будет кривовато.
Попробую сам шрифты склепать. Думаю, если в фотошопе сделать режим битовой маски с разрешением рисунка 16х16 точек, и написать текстом буквы, то можно константы прямо сходу хватать и вставлять в код. Придется потратить время, но зато свой алфавит будет
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Apr 2 2012, 12:30
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Shivers, если получится, расскажите, пожалуйста, технологию.
Вопрос рисования своих шрифтов довольно актуален.

Да, размер, наверное, что-нибудь типа 10x16. Дробных (не кратных 8) размеров не стоит боятся - там не очень много арифметики выходит. У меня вывод сотни строк в секунду (полный вывод, с кучей дополнительных расчётов, а не только растеризация) отнимает около 15% времени у LPC1768. В принципе, можно заметно сократить это время. Но пока всё работает :-))

И с отдельным буфером дисплея, возможно, не нужно заморачиваться. На ARM9 делал вывод на экран 640*480 - просто складывал байты в область видеопамяти, не думая о переключении страниц.
Работало довольно неплохо, но т.к. основная функция этой софтины была в отображении надписи "Loading WinCE", её не сильно оптимизировали :-)


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Shivers
сообщение Apr 2 2012, 13:03
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Технология пока на уровне идеи, т.е. и не технология вовсе )
Как это можно бы теоретически сделать в фотошопе, к примеру 16х16: делаем новый проект, соотношение сторон- квадрат, по цетру помещаем букву (выбираем масштаб, шрифт и прочее). А потом обьединяем слои, и пребразуем в черно белый bitmap 16х16 точек, с 1 битным цветом. После этого получается сетка, останется только записать битовые нули и единички, и оформить в виде массива 16х16. По крайней мере лучше, чем рисовать в школьной тетрадке, как мне померещилось сначала.
Я нашел в принципе растровый шрифт 16х16, но только латиницей. Так что, пока других идей всеравно нет, кроме как в фотошопе поработать. Может, кто то еще что подскажет)

За совет спасибо. Когда сделаю (дисплей только на след. неделе получу, плюс надо подключать/писать/пробовать) отпишусь
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 2 2012, 16:04
Сообщение #6


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Посмотрите здесь. Там есть пример вывода шрифта и ссылка на утилиту-конвертер.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
VDLab
сообщение Apr 2 2012, 18:26
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 133
Регистрация: 30-04-07
Из: DP.UA
Пользователь №: 27 419



Цитата(Shivers @ Apr 2 2012, 16:03) *
Технология пока на уровне идеи, т.е. и не технология вовсе )
Как это можно бы теоретически сделать в фотошопе, к примеру 16х16: делаем новый проект, соотношение сторон- квадрат, по цетру помещаем букву (выбираем масштаб, шрифт и прочее). А потом обьединяем слои, и пребразуем в черно белый bitmap 16х16 точек, с 1 битным цветом. После этого получается сетка, останется только записать битовые нули и единички, и...


Рисовать растровый шрифт в фотошопе - все равно, что что везти ведро песка "КАМАЗом". Есть же куча специализированных бесплатных программ. Вот, навскидку эта.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Apr 2 2012, 19:47
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Спасибо! Шикарные программы, как раз то что мне нужно
Go to the top of the page
 
+Quote Post
anode
сообщение Apr 3 2012, 09:02
Сообщение #9





Группа: Новичок
Сообщений: 1
Регистрация: 3-04-12
Пользователь №: 71 152



Shivers, вы можете выдрать готовые шрифты, к сожалению ср437, из ядра линукса в каталоге /версия_ядра/drivers/video/console там их с десяток. Например описание латинской "А" из файла font_8x16.c:
Код
/* 65 0x41 'A' */
    0x00, /* 00000000 */
    0x00, /* 00000000 */
    0x10, /* 00010000 */
    0x38, /* 00111000 */
    0x6c, /* 01101100 */
    0xc6, /* 11000110 */
    0xc6, /* 11000110 */
    0xfe, /* 11111110 */
    0xc6, /* 11000110 */
    0xc6, /* 11000110 */
    0xc6, /* 11000110 */
    0xc6, /* 11000110 */
    0x00, /* 00000000 */
    0x00, /* 00000000 */
    0x00, /* 00000000 */
    0x00, /* 00000000 */

По крайней мере вам надо будет разработать не так много наших букв, к. не похожи на латинские.
Прикрепленный файл  font_8x16.c.zip ( 5.35 килобайт ) Кол-во скачиваний: 145
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 6 2012, 06:28
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



У Микрочипа в графической библиотеке есть отличная программа для конвертации шрифтов и битмапов. Шрифты можно брать как из файлов, так и использовать установленные в винде.
Генерируются на выбор bin, hex, c+h.
Go to the top of the page
 
+Quote Post
skyv
сообщение Apr 9 2012, 10:17
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606



Я создавал себе шрифты в LCD Icon Editor 4.3.58.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01436 секунд с 7
ELECTRONIX ©2004-2016