|
Вывод на LCD 76х16, Нужны либы |
|
|
|
Apr 2 2012, 07:37
|

Знающий
   
Группа: Свой
Сообщений: 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)? И второй вопрос - если писать самому, как лучше делать? Пока мысли такие: можно задать символы в виде массивов констант, затем писать в память для формирования страницы, и потом уже вызывать дма для копирования на дисплей. Может, как то по другому это делается? Хочется сделать просто/компактно. И еще хочется готовую либу )
|
|
|
|
|
 |
Ответов
(1 - 10)
|
Apr 2 2012, 09:51
|

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

|
Спасибо! Ну, в качестве либы наверно стоит FSMC использовать, доступ к LCD как к SRAM. А можно и обычный i/o вывод, только строб записи придется дергать. По поводу дма .. не знаю. Пожалуй, вы правы: экран маленький, не нужно здесь дма. Я хотел дма использовать для более быстрого обновления экрана, поскольку страничного режима у этого контроллера нету.
Масштабирование не очень интересно, потому что и правда будет кривовато. Попробую сам шрифты склепать. Думаю, если в фотошопе сделать режим битовой маски с разрешением рисунка 16х16 точек, и написать текстом буквы, то можно константы прямо сходу хватать и вставлять в код. Придется потратить время, но зато свой алфавит будет
|
|
|
|
|
Apr 2 2012, 12:30
|

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

|
Shivers, если получится, расскажите, пожалуйста, технологию. Вопрос рисования своих шрифтов довольно актуален.
Да, размер, наверное, что-нибудь типа 10x16. Дробных (не кратных 8) размеров не стоит боятся - там не очень много арифметики выходит. У меня вывод сотни строк в секунду (полный вывод, с кучей дополнительных расчётов, а не только растеризация) отнимает около 15% времени у LPC1768. В принципе, можно заметно сократить это время. Но пока всё работает :-))
И с отдельным буфером дисплея, возможно, не нужно заморачиваться. На ARM9 делал вывод на экран 640*480 - просто складывал байты в область видеопамяти, не думая о переключении страниц. Работало довольно неплохо, но т.к. основная функция этой софтины была в отображении надписи "Loading WinCE", её не сильно оптимизировали :-)
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
Apr 2 2012, 13:03
|

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

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

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

|
Цитата(Shivers @ Apr 2 2012, 16:03)  Технология пока на уровне идеи, т.е. и не технология вовсе ) Как это можно бы теоретически сделать в фотошопе, к примеру 16х16: делаем новый проект, соотношение сторон- квадрат, по цетру помещаем букву (выбираем масштаб, шрифт и прочее). А потом обьединяем слои, и пребразуем в черно белый bitmap 16х16 точек, с 1 битным цветом. После этого получается сетка, останется только записать битовые нули и единички, и... Рисовать растровый шрифт в фотошопе - все равно, что что везти ведро песка "КАМАЗом". Есть же куча специализированных бесплатных программ. Вот, навскидку эта.
|
|
|
|
|
Apr 3 2012, 09:02
|
Группа: Новичок
Сообщений: 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
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|