arduino如何让变量只占用flash而不占用ram

以mega2560 为例,Flash有256k存储程序一类的,但是SRAM只有8k,默认的变量常亮是占用SRAM的,所以如果要存储很大的数据的时候就需要一些特殊的操作

额,其实官网都有说明了http://playground.arduino.cc/Main/PROGMEM
首先是引用文件

#include 

然后申明的时候使用类似的格式,这里比较不常见的是多维数组第一个维度是不能声明的,而后面的是都要声明的。

const PROGMEM  uint16_t charSet[][6][16][6] 

然后就是使用的时候使用类似的语句

pgm_read_byte(&(charSet[0][1][0][0]));
pgm_read_word(&(charSet[0][1][0][0]));

这里因为我们声明的实惠类型是uint16,所以应该使用pgm_read_word();

你可能感兴趣的:(arduino如何让变量只占用flash而不占用ram)