美文网首页Arduinoarduino我爱编程
arduino如何让变量只占用flash而不占用ram

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

作者: 剑山 | 来源:发表于2017-03-25 20:42 被阅读64次

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

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

#include <avr/pgmspace.h>

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

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

    本文链接:https://www.haomeiwen.com/subject/pjacottx.html