- 1、本文档共12页,可阅读全部内容。
- 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 for AVR 学习笔记 - IAR学习资料
IAR for AVR 学习笔记(1)--数据类型
数据类型(编译器支持 ISO/ANSI C 基本数据类型和一些附加数据类型)
1.1. 整型数据
bool 数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含st
dbool.h, bool数据类型也可以使用在C语言里。也可以使用布尔值 false和
true。
1.2.浮点数据类型:
1.3.指针类型:指针有数据指针和函数指针。
1、数据指针:
数据指针的大小为8位,16位,24位。定义为:在整型数据类型后加”*”符号。
例如:char * p;
整型数据没有24位,具体定义指针见后面扩展关键字章节。
2、函数指针:函数指针的大小为16位,24位。
指针定义:在函数类型后加”*”符号。
IAR for AVR 学习笔记(2)--扩展关键字
铭正同创 发表于 2008-1-4 12:00:00
可以用来解决数据,函数的存放等。有了它我们就可以定义变量存放在 EEPROM,FLASH 空间。定义中断函数,
指针等等。IAR 关键字很多,这里只列举常用的。
2.1.扩展关键字:用于控制数据和指针。
__eeprom 用于EEPROM 存储空间, 控制数据存放,控制指针类型和存放
__tinyflash, __flash, __farflash, __hugeflash 用于flash 存储空间, 控制数据存放,控制指针类型和存放:
__ext_io, __io 用于I/O 存储空间, 控制数据存放,控制指针类型和存放
__regvar 放置一个变量在工作寄存器中
2.2.函数扩展关键字:。
__nearfunc __farfunc 用于控制数据存放,这组关键字必须在函数声明和定义的时候指定:
__interrupt. 关键字控制函数的类型。这组关键字必须在函数声明和定义的时候指定
__root. 关键字仅仅控制有定义的函数:
2.3.其它特别的关键字:
@ 用于变量的绝对地址定位。也可以用#pragma location 命令
#pragma vector 提供中断函数的入口地址。
__root 保证没有使用的函数或者变量也能够包含在目标代码中
__no_init 禁止系统启动的时候初始化变量.
asm, __asm 插入汇编代码
IAR for AVR 学习笔记(3)--位操作
铭正同创 发表于 2008-1-4 12:16:00
3.1.在c 语言里对位的操作如一般如下:
PORTB|=(12);//置PORTB 的第2 位=1
PORTB=~(12);//置PORTB 的第2 位=0
PORTB^|=(12);//取反PORTB的第2 位
While(PORTB(12));//判断1
While(!(PORTB(12)));//判断为0
3.2.IAR 编译器对位的支持更强大,除了上面的方法外还有以下更简单的操作方法:
PORTB_ Bit2=1; //置PORTB 的第2 位=1
PORTB_ Bit2=0; //置PORTB 的第2 位=0
PORTB_ Bit2=~ PORTB_ Bit2;//取反PORTB 的第2 位
While(PORTB_ Bit2);或者while(PORTB_Bit2 1);//判断1
while(PORTB_ Bit2 0);//判断0
PORTC_Bit4=PORTB_Bit2;//把PORTB 的第2 位传送到PORTC 的第4 位
3.3.位变量定义:
由于iar 使用了扩展语言,它对位域的支持变为最小为char 类型,我们可以很方便地用来定义位变量。
采用结构体来定义位变量:
struct
{
unsigned char bit0:1;
unsigned char bit1:1;
unsigned char bit2:1;
unsigned char bit3:1;
unsigned char bit4:1;
unsigned char bit5:1;
unsigned char bit6:1;
unsigned char bit7:1;
}t;
您可能关注的文档
最近下载
- 苏少版音乐一年级上册 第4单元 秋日去郊游《郊游》 课件.pptx
- (精选)【医学英文课件】 Medical Terminology教学课件.ppt
- 盐雾试验作业指导书 .pdf VIP
- 小儿重症肺炎护理查房的参考书籍和学术文献.pptx
- 2024年哈尔滨职业技术学院单招职业技能测试题库及答案解析.docx VIP
- 射线检测-NDT全国特种设备无损检测人员资格考核统编教材.PDF
- 某县纪委监委开展“校园餐”突出问题专项整治工作汇报.docx VIP
- 基于unity3D的跑酷游戏的设计与实现.docx VIP
- 党课讲稿--《中国共产党基层组织选举工作条例》专题辅导报告.doc VIP
- 十年(2013-2022)中考真题集锦之课内文言文27:醉翁亭记(教师版)(全国通用).pdf VIP
文档评论(0)