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ビットのデータに格納されていることを確認するまでその理由がわかりませんでした。
前に言ったように、必要なブールの数は常に8の増分であるため、それが私の利点に役立つかどうかはわかりません。
1000以上のブール値を格納し、それでもインデックスでそれらを参照できる、よりメモリ効率の高い方法はありますか?
または...少なくともメモリ効率が高く、設定と反復にCPU時間を大幅に増やす必要はありませんか?
私は配列について考えchar
、次に各文字をビットマスキングして個々のビットにアクセスしました。しかし、もっと簡単な方法があるのか、それともかなり多くのCPU時間を消費するのかはわかりませんでした。