ARDUINO Хранение битовых масок для LCD create.Char() в PROGMEM

Александр Лезин

✩✩✩✩✩✩✩
18 Май 2020
1
0
Доброго времени суток, форумчане, может быть кто-то подскажет, как можно сохранить битовые маски в PROGMEM, а затем использовать их для создания символов для LCD дисплея (функция create.Char() ). Использую библиотеку LiquidCrystal_I2C.
 

kalobyte

★★★✩✩✩✩
1 Янв 2020
726
146
ну 1 символ занимает 8 байт
берем первый символ
byte p1[8] = {
0x10,
0x10,
0x10,
0x10,
0x10,
0x10,
0x10,
0x10};

это данные, а им надо еще базовый адрес
#define p1_addr 0
#define p2_addr 8
#define p3_addr p2_addr+8
#define p4_addr p3_addr+8
...
ну или можно в уме прибавлять по 8 и писать цифрами

потом создается в массивы или массив массивов с модификатором прогмем
ну и дописать функцию в библиотеку индикатора, которая будет загружать из прогмем нужный символ в рам индикатора
для этого есть функция загрузки в озу lcd.createChar(0, p1);
0 это адрес в озу, а р1 это название массива

тебе надо посмотреть, как устроена эта функция и переписать ее с использованием функции работы с флешем контроллера pgm_read_byte, куда и будеш указывать p4_addr например