- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IAR-AVRC编译器简要指南
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
您可能关注的文档
最近下载
- 《俗世奇人》整本书分享交流教学设计.doc
- 幼儿园-家长抱怨、投诉记录表2.doc
- 2024年中考生物模拟试卷(含答案解析).pdf VIP
- 中心静脉压测量技术(2023年中华护理学会团体标准).pptx
- 塔吊拆除安全专项施工方案(编制、审核要点).docx
- 盐城市规展馆3D影院片制作招标文件(定稿)-招标文件.doc
- 2024年学习教育围绕“六项纪律”(政治纪律、组织纪律、廉洁纪律、群众纪律、工作纪律、生活纪律)研讨交流发言稿【2篇】与“廉洁纪律和群众纪律”研讨发言稿【7篇】汇编.docx VIP
- 水利安全生产知识答题全附完整答案.doc
- 河南郑州“7.20”特大暴雨灾害事件—灾害应对处置.pptx
- 小学五年级下册数学期末考试试卷(含答案).docx VIP
文档评论(0)