iar for avr 学习笔记 - iar学习资料

iar for avr 学习笔记 - iar学习资料

ID:16071231

大小:217.57 KB

页数:12页

时间:2018-08-07

iar for avr 学习笔记 - iar学习资料_第1页
iar for avr 学习笔记 - iar学习资料_第2页
iar for avr 学习笔记 - iar学习资料_第3页
iar for avr 学习笔记 - iar学习资料_第4页
iar for avr 学习笔记 - iar学习资料_第5页
资源描述:

《iar for avr 学习笔记 - iar学习资料》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、IARforAVR学习笔记(1)--数据类型数据类型(编译器支持ISO/ANSIC基本数据类型和一些附加数据类型)1.1.整型数据bool数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含stdbool.h,bool数据类型也可以使用在C语言里。也可以使用布尔值false和true。1.2.浮点数据类型:1.3.指针类型:指针有数据指针和函数指针。1、数据指针:数据指针的大小为8位,16位,24位。定义为:在整型数据类型后加”*”符号。例如:char*p;整型数据没有24位,具体定义指针见后面扩展关键字章节。2、函数指针:函数指针的大小为16位,24位。指针定义:

2、在函数类型后加”*”符号。IARforAVR学习笔记(2)--扩展关键字铭正同创发表于2008-1-412:00:00可以用来解决数据,函数的存放等。有了它我们就可以定义变量存放在EEPROM,FLASH空间。定义中断函数,指针等等。IAR关键字很多,这里只列举常用的。2.1.扩展关键字:用于控制数据和指针。__eeprom用于EEPROM存储空间,控制数据存放,控制指针类型和存放__tinyflash,__flash,__farflash,__hugeflash用于flash存储空间,控制数据存放,控制指针类型和存放:__ext_io,__io用于I/O存储空间,控制数据存放

3、,控制指针类型和存放__regvar放置一个变量在工作寄存器中2.2.函数扩展关键字:。__nearfunc__farfunc用于控制数据存放,这组关键字必须在函数声明和定义的时候指定:__interrupt.关键字控制函数的类型。这组关键字必须在函数声明和定义的时候指定__root.关键字仅仅控制有定义的函数:2.3.其它特别的关键字:@用于变量的绝对地址定位。也可以用#pragmalocation命令#pragmavector提供中断函数的入口地址。__root保证没有使用的函数或者变量也能够包含在目标代码中__no_init禁止系统启动的时候初始化变量.asm,__asm

4、插入汇编代码IARforAVR学习笔记(3)--位操作铭正同创发表于2008-1-412:16:003.1.在c语言里对位的操作如一般如下:PORTB

5、=(1<<2);//置PORTB的第2位=1PORTB&=~(1<<2);//置PORTB的第2位=0PORTB^

6、=(1<<2);//取反PORTB的第2位While(PORTB&(1<<2));//判断1While(!(PORTB&(1<<2)));//判断为03.2.IAR编译器对位的支持更强大,除了上面的方法外还有以下更简单的操作方法:PORTB_Bit2=1;//置PORTB的第2位=1PORTB_Bit2=0;//置

7、PORTB的第2位=0PORTB_Bit2=~PORTB_Bit2;//取反PORTB的第2位While(PORTB_Bit2);或者while(PORTB_Bit2==1);//判断1while(PORTB_Bit2==0);//判断0PORTC_Bit4=PORTB_Bit2;//把PORTB的第2位传送到PORTC的第4位3.3.位变量定义:由于iar使用了扩展语言,它对位域的支持变为最小为char类型,我们可以很方便地用来定义位变量。采用结构体来定义位变量:struct{unsignedcharbit0:1;unsignedcharbit1:1;unsignedchar

8、bit2:1;unsignedcharbit3:1;unsignedcharbit4:1;unsignedcharbit5:1;unsignedcharbit6:1;unsignedcharbit7:1;}t;然后就可以用以下位变量了。t.bit0=1;t.bit0=~t.bit0;但是采用以上结构体做出来的位变量只可以访问t的位,不能够直接访问变量t,和标准的IAR位操作也不一样。采用联合体来定义效果更佳。#includeunion{unsignedchart;struct{unsignedchart_bit0:1,t_bit1:1,t_bit2:1,t_bi

9、t3:1,t_bit4:1,t_bit5:1,t_bit6:1,t_bit7:1;};};voidmain(void){t_bit0=1;//访问变量t的位t_bit0=~t_bit0;PORTB=t;//直接访问变量t}位变量也可以直接定义在工作寄存器里。3.4bool数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含stdbool.h,bool数据类型也可以使用在C语言里。也可以使用布尔值false和true。不过是占用8位1个字节。#include#inc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。