#1
Сообщение
mrAlexx » 07.02.2021{, 22:29}
Добрый день, братья по FLProg.
Вновь вынужден обратиться за помощью к Вам.
Выл у меня проект, написанный на IDE, который сносно работал на шилде с LCD 1602 и пятью кнопками.
Естественно шилд китайский и русских букв не имеет в знакогенераторе.
Но я вышел из положения классическим способом:
1) Использовал библиотеку LiquidCrystal.h
2) Формировал все нужные в проекте символы в виде битовых образов, например так
byte up[8] = { // ↑
0b00100,
0b01110,
0b11111,
0b00100,
0b00100,
0b00100,
0b00100,
0b00000
};
3) в нужные момент подгружал необходимые символы в 8 программируемых ячеек дисплея, так
lcd.createChar(1, up);
4) выводил так
DisplayText (0, 0, "\1");
Из-за того, что в контроллере закончилась память проект был отложен. Сейчас я его решил переписать на FLProg и существенно переработать, но не пойму как решить это проблему с дисплеем.
Штатный блок меню вполне очевидно отображает зюзики, а те 3 пользовательских блока, которые я нашел мне кажутся какими-то костылями. Хотя русские буквы отображают исправно. )
Теперь собственно вопрос: Каким образом мне осуществить то, что я написал выше - в меню сформировать битовый образ символа и загрузить его в знакогенератор (причем под словом "символ" я понимаю не только букву, а любой значек) . Причем это необходимо делать динамически в зависимости от текущего пункта меню и текста на дисплее?
Ткните носом, куда копать.
Кстати по какой-то непонятной причине несмотря на то, что этот дисплей имеет 8 программируемых ячеек (по даташиту), но попытка использования восьмой вызывает сбой всего индикатора. Китайцы, блин. )
В идеале хорошо б доработать штатный блок меню, чтоб в правой части настроек меню (там где формируется текст строки меню) ниже сделать 8 окошек для ввода битовых образов (в любой системе счисления), а в самой строке писать управляющие коды типа \1