u8g2 не могу приделать шрифт

74LS00
Offline
Зарегистрирован: 11.04.2016

Есть скетч макета, писать не буду, много правок и коментов и вообще писался давно, да и не в нём дело, макет он рисует без проблем.
Экран 12864 ST7920.

u8g2.setFont(  u8g2_font_ncenB18_te  ); // выбор шрифта
u8g2.setCursor(0, 18); u8g2.print("12.34567890f"); //выводимый текст

Получаю то что и надо, шрифт с завитушками

занимает это 98% памяти, но мне от него нужны только цифры.

Конкретно по u8g2 инструкция я не нашёл, есть только от прошлой версии там всё другое, хотя возможно приколхозить можно.
Я стянул весь гит https://github.com/olikraus/u8g2
tools/font/bdf/ncenB18.bdf лежит мой шрифт. Я его импортировал в Fonny 1.4.7 новый http://hukka.ncn.fi/?fony (File - Import - BDF Font) и это именно тот шрифт 
(превью этот движок не поддерживает так что любуемся меньше никак)

Взял tools/font/bdfconv/bdfconv_2_22.exe с того же гита. Подал примерно такую команду

%bdfconv_2_22% -v -f 1 -m "32-127" %font_bdf% -o %file_c%  -n %font_name% -d %font_bdf%

переменные указывают на пути, в общем по шаблону tools/font/bdfconv/test_helvb18.bat

Получившийся код из файла добавил в свой
arduino-1.8.10p\portable\sketchbook\libraries\U8g2\src\clib\u8g2_fonts.c
В файл u8g2.h с той же папки, дописал строчку к другим extern const, сейчас там
extern const uint8_t u8g2_font_font18dig[] U8G2_FONT_SECTION("u8g2_font_font18dig");
В начала кода тоже всё это пробовал писать думая что есть приоритеты, но разницы нет.

Возможно тут какието примудрости с названием которое сейчас u8g2_font_font18dig, как я понял оно 2 раза упоминается в коде шрифта и описании. Одно перед квадратными скобками и второе в кавычках, у прошлой версии библиотеки они были разными.

Собираю указав только свой шрифт вместо прошлого и получаю

 

В общем шрифт не работает, при этом откудато вылезает другой.

Есть предложения решения.

Пока что я думаю удалить все остальные шрифты, что не так то просто там сотни тысяч строк

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ничего не понял, но подпишусь.

74LS00
Offline
Зарегистрирован: 11.04.2016

Похоже ошибка как раз в батнике была, путь был не рабочую папку, а на исходник с гита

b707
Offline
Зарегистрирован: 26.05.2017

74LS00 пишет:

Похоже ошибка как раз в батнике была, путь был не рабочую папку, а на исходник с гита

помоему, ерунду пишете...

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

74LS00
Offline
Зарегистрирован: 11.04.2016

Тогда получается что в u8g2.h вообще ненадо вписывать "extern const uint8_t ncenB18d1[] U8G2_FONT_SECTION("ncenB18d1");" и это нужно только если пихать шрифт в саму библиотеку, ну тогда даже проще.