arduino上PROGMEM(AVR)中布尔的二维数组

地理搜索

我正在尝试在使用atmega328的arduino uno上构建二维数组。我想要一个布尔数组,其大小为256 *18。这对于2KB RAM来说太大了,所以我想将其保存到PROGMEM(avr)。我该怎么办?如何添加变量?我发现一些关于使用字符或字符串执行相同操作的方法论,但是布尔值没有数据类型。在字符中保存和提取布尔值的最佳方法是什么?

mpflag

您可能已经了解了有关使用程序空间(又名Flash)的信息。必须使用对指针起作用的特殊宏,如avr-libc / user-manual所述

也就是说,请参见我在程序空间中存储2D数组的示例中的2D矩阵示例以及从2D数组调用数据的示例

它应该适用于更大的规模。

最后,您在第二个问题中潜入关于布尔值的问题。请注意,布尔值被视为0或1时实际上会消耗整个字节。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章