Как хранить массивы в основной памяти, освободив динамическую

Есть ли какая то возможность хранить массивы точек (изображение) не в динамической памяти? Если я создаю массив bool, он 10 картинками 8х8 занимает 70 % динамической памяти. Массив в процессе работы программы не меняется. Связываться с eeprom не хочется.
Я так понял, 1 значение bool переменной занимает целый байт.

PROGMEM подойдёт.

А что такое основная память? PROGMEM? Так храните на здоровье. Или Вы что-то другое имели в виду?

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

Картинки из bool это что то новое !!!
ТС покажите эти картинки ? Спать же не смогу не видев этот МИНИМАЛИЗМ !!!
TTTFFTTT
TTFFFFTT
TTFFFFTT
TTFFFFTT
TTFFFFTT
TTTFFTTT
FFFFFFFF
FFFTTFFF

1 лайк

Вместо использования bool нужно представить точки битами и упаковать каждые 8 точек в 1 байт.

Как это делать?

Не увидев Ваш Мега код - нам не на что опереться !!!

Да он делает как я, помните мою тему (нифига не могу откопать) про 128 битные числа, там и картинка из 0 и 1 :), кстати там и решение - как это всё делается.

Дурные примеры заразительны !

Это доказывает только одинаковость мышления, в отсутствии знаний “правильного” способа :slight_smile:

Нашёл.

Каждый столбец картинки описывать одним байтом. Один байт - это восемь бит. Каждый бит может быть представлен нулем или единицей. Т.е. столбец

true, true, false, true, false,false, true, false

будет описан байтом

b11010010

Раскаялся?

Кстати, у меня родня тоже со Смоленской.

Что “это”? Вам там уже разных советов надавали, который из них Вы назвали “это”?

1 лайк

Не совсем раскаялся, вот на RP2040 хорошо бы картинки было бы хранить и варианты скетчей :slight_smile:

Так вроде и массив булов, занимающих один бит, а не восемь , тоже уже обсуждался.

Думаю, для развития поработать с битами ему будет полезно ))