博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AVRWARE++开发笔记11:将数组存于ROM中
阅读量:2041 次
发布时间:2019-04-28

本文共 681 字,大约阅读时间需要 2 分钟。

    本日志介绍在AtmelStudio中,将数组存于ROM中的方法。
    如果我们不加任何附加声明定义数组或其它变量,在
AtmelStudio中(实际上不仅是
AtmelStudio,其它GCC采用同样的处理方法
),数组或变量是定义在RAM中的。但是单片机中的RAM的容量是比较小的,如果我们有较大的数据(例如数组)需要存储,我们就需要把其定义在ROM中。在Keil、IAR等软件中,都有专门的关键字用于对这些变量和数组进行定义。在这里,我们将介绍AtmelStudio中的定义方法。
    在
AtmelStudio中,希望把数组或变量定义在ROM中,需包含
pgmspace.h头文件,具体的程序写法如下:
#include <avr/pgmspace.h> 
 
    然后在程序中定义数据类型,程序如下。这段程序实际上是在
pgmspace.h头文件中定义的,但其有条件编译的限制,还需仔细看懂其条件编译的使用条件,要不就自己定义就好了。
typedef unsigned char PROGMEM prog_uchar;
    有了
prog_uchar数据类型,我们就可以声明数组了,声明程序如下。数组中的内容将存于ROM中。
const prog_uchar Zk_ASCII8X16[]={} 
    最后,就是调用方法,其程序如下。我们要用
pgm_read_byte函数进行调用。
ywbuf[j]=pgm_read_byte(&Zk_ASCII8X16[ulOffset+j]); 
    就这么多内容,学会后,就可以将数据存于ROM中了。
原创性文章,转载请注明出处  
 CSDN:
 
 
 
你可能感兴趣的文章
TCP的那些事(下)
查看>>
Arcgis for ios笔记
查看>>
iOS常用宏定义
查看>>
被废弃的dispatch_get_current_queue
查看>>
什么是ActiveRecord
查看>>
有道词典for mac在Mac OS X 10.9不能取词
查看>>
关于“团队建设”的反思
查看>>
利用jekyll在github中搭建博客
查看>>
How will the new iPhone screen sizes affect iOS developers?
查看>>
在xcode5中修改整个项目名
查看>>
漫谈选人与培训
查看>>
【移动开发】Ken Burns特效的幻灯片
查看>>
iOS 8中CLLocationManager及MKMapView showUserLocation失败的解决办法
查看>>
Cocos2d-x 地图行走的实现1:图论与Dijkstra算法
查看>>
GPUImage
查看>>
Android View系统解析(下)
查看>>
Windows7中IIS简单安装与配置(详细图解)
查看>>
linux基本命令
查看>>
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>
ExecutorService 线程池 newFixedThreadPool newSingleThreadExecutor newCachedThreadPool
查看>>