IAR for AVR 学习笔记 - IAR学习资料.pdfVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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;

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档