我正在尝试在使用atmega328的arduino uno上构建二维数组。我想要一个大小为256 * 18的布尔数组。这对于2KB RAM来说很大,所以我想把它保存到PROGMEM(avr)。我怎么能这样做,我如何访问变量?我找到了一些关于用字符或字符串做同样的tutotials但是没有布尔数据的数据类型。在字符中保存和提取布尔值的最佳方法是什么。
答案 0 :(得分:1)
您可能已经阅读过有关使用程序空间(也就是闪存)的内容。使用特殊的宏来处理指针是必要的,详见avr-libc/user-manual。
那就是说,在storing the 2D array的程序空间示例中看到我的2D矩阵示例以及calling the data from the 2D array
的示例它应该适用于更大规模。
你最后偷了第二个问题,关于布尔。注意布尔值被视为0或1时实际上消耗了一个完整的字节。
您可能需要考虑#include并使用vector< bool >类型,因为这样每个单元只消耗一个比特。因为每个元素占一位。