在arduino上的PROGMEM(AVR)中的Twodiemensional数组布尔值

时间:2014-02-21 23:08:44

标签: arrays arduino

我正在尝试在使用atmega328的arduino uno上构建二维数组。我想要一个大小为256 * 18的布尔数组。这对于2KB RAM来说很大,所以我想把它保存到PROGMEM(avr)。我怎么能这样做,我如何访问变量?我找到了一些关于用字符或字符串做同样的tutotials但是没有布尔数据的数据类型。在字符中保存和提取布尔值的最佳方法是什么。

1 个答案:

答案 0 :(得分:1)

您可能已经阅读过有关使用程序空间(也就是闪存)的内容。使用特殊的宏来处理指针是必要的,详见avr-libc/user-manual

那就是说,在storing the 2D array的程序空间示例中看到我的2D矩阵示例以及calling the data from the 2D array

的示例

它应该适用于更大规模。

你最后偷了第二个问题,关于布尔。注意布尔值被视为0或1时实际上消耗了一个完整的字节。

您可能需要考虑#include并使用vector< bool >类型,因为这样每个单元只消耗一个比特。因为每个元素占一位。