美文网首页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