- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IAR-AVR C编译器简要
第一章 数据类型(编译器支持 ISO/ANSI C 基本数据类型和一些附加数据类型。)
1.1. 整型数据:
1.2.浮点数据类型:
1.3.指针类型:指针有数据指针和函数指针。
1.3.1 数据指针:数据指针的大小为8位,16位,24位。定义为:在整型数据类型后加”*”符号。如:
char *p;
整型数据没有24位,具体定义指针见后面扩展关键字章节。
1.3.2 函数指针:函数指针的大小为16位,24位。
指针定义:在函数类型后加”*”符号。具体定义指针见后面章节。
第二章 扩展关键字
可以用来解决数据,函数的存放等。有了它我们就可以定义变量存放在EEPROM,FLASH中。定义中断函数,指针等等。
2.1.数据扩展关键字:用于控制数据的存放类型和对象属性。
2.2.函数扩展关键字:用于控制数据的存放类型和对象属性。
2.3.其它特别的关键字:
@ ,用于变量的绝对地址定位。也可以用#pragma location命令
#pragma vector,提供中断函数的入口地址。
#pragma预编译里有很多命令,用在数据操作上都有直接的简单关键字代替,如上面提到的用#pragma location 命令和用 @ 来对变量绝对地址定位效果一样。
常用类型的具体操作方法
根据第一和第二章节的内容,我们可以对IAR的数据进行具体的定义
3.1.EEPROM区域数据存储。(用关键字 __eeprom控制来存放, __eeprom关键字写在数据类型前后效果一样)
__eeprom unsigned char a;//定义一个变量存放在EEPROM空间
unsigned char __eeprom a;//效果同上
__eeprom unsigned char p[];//定义一个数组存放在EEPROM空间
对于EEPROM空间的变量操作同SRAM数据空间的操作方法一样,编译器会自动调用 __EEPUT(ADR,VAL), __EEGET(VAR, ADR)宏函数来对EEPROM变量的操作。
例:
#includeiom8.h
__eeprom unsigned char p[];
__eeprom unsigned char a;
void main(void)
{p[1]++;// EEPROM变量的操作
a++;// EEPROM数组的操作
}
定义常数在EEPROM空间,只要给变量赋与初值就可以了。由于常数在EEPROM空间的地址是随机分配的,读取变量才可以读取到常数值。
__eeprom unsigned char a=9;//定义一个常数存放在EEPROM空间
__eeprom unsigned char p[]={1,2,3,4,5,6,7,8};//定义一个组常数存放在EEPROM空间
例:
#includeiom8.h
__eeprom unsigned char p[]={1,2,3,4,5,6,7,8};
__eeprom unsigned char a=9;
void main(void)
{PORTB=a;//读取EEPROM空间值9
PORTC=p[0]; //读取EEPROM空间值
}
EEPROM空间绝对地址定位:
__eeprom unsigned char a @ 0x8;//定义一个变量存放在EEPROM空间0X08单元
__eeprom unsigned char p[] @ 0x22//定义一个数组存放在EEPROM空间,开始地址为0X22单元
__eeprom unsigned char a @ 0x08=9;//定义一个常数存放在EEPROM空间0X08单元
__eeprom unsigned char p[] @0x22={1,2,3,4,5,6,7,8};
//定义一个组常数存放在EEPROM空间开始地址为0X22单元
由于常数在EEPROM空间的地址是已经分配的,读取EEPROM空间值可以用变量和地址。
3.2.与 __eeprom有关的指针操作。 __eeprom关键字控制指针的存放和属性
3.2.1指向eeprom空间的指针EEPROM指针(控制属性)
unsigned char __eeprom *p;//定义一个指向EEPROM空间地址的指针,8位指针本身存放在SARM中。
unsigned int __eeprom *p;//定义一个指向EEPROM空间地址的指针,16位指针本身存放在SARM中。
unsigned char __eep
您可能关注的文档
- 13中国国电集团公司水工技术监督实施细则.doc
- 51CTO下载-Javascript学习笔记___自学实用.doc
- 预报基础知识收集整理.doc
- 基于ZXing的Android手机二维码开发.doc
- 实验0作业-.doc
- MATLAB_RTW__Engine操作步骤.doc
- 1 Android系统简介及开发环境的搭建.doc
- 2012级气科统计方法实习内容.doc
- 生物化学检验二.doc
- FreeBSD操作系统 安装软件.doc
- 2025年教育直播平台个性化学习路径规划与效果评估报告.docx
- 2025年新能源环卫车辆无人驾驶改造项目实施流程详解.docx
- 基于腾讯社交生态的电商导购变现模式分析报告.docx
- 2025年老年旅居养老产业运营模式创新与案例分析报告.docx
- 新能源物流车推广模式优化与2025年运营成本降低策略报告[001].docx
- 2025年新能源环卫车辆无人驾驶改造项目实施进度与效果跟踪.docx
- 生物基纺织品的合成生物学工艺优化与创新报告.docx
- 液晶显示器LCD生产线项目招商引资报告.docx
- 2025年新能源环卫车辆无人驾驶改造项目实施过程中的问题与对策.docx
- 2025年农产品质量安全追溯体系在食品安全风险防控中的作用报告.docx
最近下载
- 西门子840DSL报警导入模板.xls VIP
- 现代密码学(电子科大)中国大学MOOC慕课 章节测验期末考试客观题答案.pdf VIP
- TOTO东陶诺锐斯特TCF9898&9788WCS使用说明书.pdf
- 红警2共和国之辉rules.ini修改菜鸟教程.docx VIP
- 人教B版高中数学必修一全册教学课件.pptx
- 工程售后服务承诺书15篇.docx VIP
- 苏科版九年级物理电压和电压表的使用.pptx VIP
- 苏科物理九年级上册电流和电流表的使用课件.pptx VIP
- 蛇足石杉的孢子分析-特种植物育种与栽培专业论文.docx VIP
- 图形图像处理PhotoshopCC(电子商务专业)高职PPT完整全套教学课件.pptx VIP
文档评论(0)