AVRWARE++开发笔记11:将数组存于ROM中
来源:互联网 发布:淘宝运营培训视频 编辑:程序博客网 时间:2024/05/29 19:14
本日志介绍在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中了。
原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163。
CSDN:http://blog.csdn.net/qingwufeiyang12346
如果我们不加任何附加声明定义数组或其它变量,在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中了。
原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163。
CSDN:http://blog.csdn.net/qingwufeiyang12346
阅读全文
1 0
- AVRWARE++开发笔记11:将数组存于ROM中
- AVRWARE++开发笔记1:综述
- 将两个已经排好序的数组重新排序存于一个更大的数组中
- AVRWARE++开发笔记5:蜂鸣器驱动实验
- 写的一个字符串折分函数,并将结果存于数组中
- AVRWARE++开发笔记2:开发环境的建立
- AVRWARE++开发笔记3:III型测试板硬件原理
- AVRWARE++开发笔记4:调试III型测试板
- AVRWARE++开发笔记8:Atmel Studio去除拼写检查
- AVRWARE++开发笔记9:应用Atmel Studio学习C语言
- AVRWARE++开发笔记10:晶振频率的选择
- ios开发 如何将CGRect类型存进数组
- thinkphp将数组存到xml文件中
- 将RGB数组在内存中压缩成JPEG文件
- 将CGPoint类型的变量存到数组中
- PHP将数据存于XML
- AVRWARE++开发笔记6:8路直接I/O口控制LED灯实验
- AVRWARE++开发笔记7:74HC595串行控制LED灯实验
- git 常用命令学习笔记
- Python的安装
- 【20170924】Java每日一练
- composer问题之wnmp安装laravel报错
- IDEA教程
- AVRWARE++开发笔记11:将数组存于ROM中
- 求逆序对数目
- mapreduce作业接受序列化文件(SequenceFile)作为文件输入的WordCount程序
- [python] numpy axis概念整理筆記
- golang中os/exec包用法
- maven项目实战
- 使用JavaScript实现创建动态下拉菜单
- [JAVA]toString()、String.valueOf()、(String)
- 二次作业1