RSS
people

Мои инструменты — LCD Font Maker

Приветствую вас, дорогие мои читатели.

чтобы вы не скучали , пока я тут изобретаю новые поделки, или переделываю старые, расскажу вам об одном моем интересном инструменте-программе — редакторе шрифтов для поделок с графическим дисплеем.

Итак, программку можно загрузить здесь. Там только один исполняемый файл. По идее, должно сразу запуститься, и показать вот этот вот диалог:

Диалог создания нового шрифта

Это диалог создания нового шрифта. В нем можно указать основные параметры шрифта — ширина и высота в пикселях, а так же число символов в шрифте.

После нажатия кнопки Create показывается основное окошко программы:

Главное окно программы

Тут я выбрал размеры шрифта 8 на 8 пикселей и количество 128. Остальные символы выделены серым, это значит, что их нет еще.

Итак — с права у нас показываются все наши символы. Выделив один, мы видим слева его увеличенную копию, и можем редактировать. Только аккуратнее, так как истории изменений тут не предусмотренно, и отменить  ваши действия уже не получится. Разве что закрыть программу не сохраняя файл.

Левой кнопкой мыши мы ставим пиксель, правой — убираем. Ну тут вроде все понятно.

Слева, над большим представлением символа, видно все его параметры, а так же его код и сам символ, как он выглядит в оригинальном размере.

Далее левее идут кнопки редактирования:

  • Вставить новый символ в текущую посицию, при этом все символы, включая выделенный сдвинуться в право.
  • Удалить текущий символ. Все символы, расположенные с права, сдвинутся влево.
  • Отобразить зеркально по вертикали.
  • Отобразить зеркально по горизонтали.
  • Сдвинуть все пиксели символа вверх на один пиксель.
  • Тоже самое, но вниз.
  • Тоже самое, но вправо.
  • Тоже самое но влево.
  • Скопировать символ во внутренний буффер.
  • Вставить символ из внутренного буфера.

Вот собственно и все редактирование.

Самая главная особенность программы — способность ее сохранять отредактированный шрифт не только в своем внутреннем формате, но и в виде файла программы на С/С++, чтобы можно было быстро вставить этот шрифт в свою программу.

На данный момент есть два типа сохранения:

menu1

На рисунке, и в программе, присутствует три типа, но последний еще не запрограммирован и в данный момент два последних пункта дают одинаковый результат.

При выборе первого пункта — «C/C++ code Vert Direct...», данные шрифта сохранятся так, как видно на картинке внизу (выделенно красным):

Байты одного символа

Второй и третий пункты делают одно и тоже. Это действие имеет смысл, когда у вас высота шрифта меньше 8ми пикселей. Эти пункты распологают биты в реверсивном порядке.

Вот так вот выглядит сгенерированный .с файл с небольшим шрифтом с одним символом 6 х 8 пикселей. Символ С:

Symbol C   
  1. #define Font_6x8_X 6
  2. #define Font_6x8_Y 8
  3. #define Font_6x8_C 1
  4. unsigned char Font6x8[] = {
  5. 0x3c, 0x42, 0x81, 0x81, 0x81, 0x42};

Надо сказать, что каждый байт тут представляет один столбец. Слева на право.

И если вы делали шрифты высотой меньше 8ми пикселей, то у нас в каждом байте будут неиспользованные биты. Но пока что у меня на все мои задачи памяти микроконтроллера хватало — то я так и оставил. Если будет время и желание — то выпущу версию, которая будет паковать шрифт, чтобы использовались все биты в байтах.

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

Ну и теперь самое время взять этот кусок кода, и прикомпилить к себе  в программу. Как это сделано, можно поглядеть в прошивке к моему плееру для автомобиля Мазда, а именно в файлах TextOut.c и TextOut.h

Еще раз ссылка на файл с программой: lcdfontmaker_v_1_0.

2 комментария к “Мои инструменты — LCD Font Maker”

  1. corel пишет:

    Добрый день!

    Очень интересная у вас разработка.

    У меня тоже авто Mazda, к сожалению, нет линейного входа, посему хотел уточнить у Вас, достаточно будет подсоединить колодку к магнитоле разъемам 5-6-11, чтобы подключить mp3 плеер.

    И сможет ли штатная голова понять, что сигнал надо воспроизводить с линейного входа?

  2. MasterAlexei пишет:

    Немного не в ту тему комментарий, но отвечу тут.

    Если вы читали внимательно все мои статейки на тему MP3 плеера для АМ Мазда, то могли видеть там пару строк о том, что если голове на шине что то не нравится, то линейный вход сразу отключается.

    К сожалению, просто так линейный вход не включить — надо дать голове понять, что к ней подключился CD Changer. А для этого надо либо собирать этот девайс, либо есть уже готовые разработки тиа CarLink, USBLink и прочее.

Оставить комментарий или два

Пожалуйста, зарегистрируйтесь для комментирования.