Более эффективный логический массив RAM? Среда Arduino

У меня есть код в среде Arduino, который требует x (с шагом 8) логических значений, которыми можно управлять во время выполнения для некоторого кода регистра сдвига. Итак, в настоящее время я использую логический массив вроде такого:

 #define number_of_shiftRegisters 220 //num of 8 bit shift registers

 #define numOfRegisterPins number_of_shiftRegisters * 8 //number of booleans needed

 boolean registers[numOfRegisterPins]; //boolean array

Но у меня закончилась RAM около 200 (1600 логических значений), и я не знал, почему, пока не увидел это, хотя логические значения 1 бит, они хранятся в 8 биты данных.

Как я уже говорил, количество необходимых bool всегда увеличивается с шагом 8, поэтому я не знаю, может ли это сработать в мою пользу.

Есть ли более эффективный способ использования памяти для хранить более 1000 логических значений и по-прежнему иметь возможность ссылаться на них по индексу?

Или ... По крайней мере, с большей эффективностью памяти, которая не будет стоить значительно больше процессорного времени для установки и итерации?

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

5
задан Peter Mortensen 18 April 2011 в 10:00
поделиться