AVR单片机C语言编译器精编版

上传人:ahu****ng1 文档编号:141880084 上传时间:2020-08-13 格式:DOC 页数:9 大小:97.50KB
返回 下载 相关 举报
AVR单片机C语言编译器精编版_第1页
第1页 / 共9页
AVR单片机C语言编译器精编版_第2页
第2页 / 共9页
AVR单片机C语言编译器精编版_第3页
第3页 / 共9页
AVR单片机C语言编译器精编版_第4页
第4页 / 共9页
AVR单片机C语言编译器精编版_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《AVR单片机C语言编译器精编版》由会员分享,可在线阅读,更多相关《AVR单片机C语言编译器精编版(9页珍藏版)》请在金锄头文库上搜索。

1、精品资料推荐AVR单片机C语言编译器Win-AVR是流行的GNU编译器在AVR平台上的移植。安装完毕后会在桌面上出现一下七个快捷方式,它们的作用如下:Programmers Notepad源文件的编辑软件,可提供应用程序接口AVR InsightGDB Debug的前端工具,用于仿真调试TKInfoGNU超文本格式的图形浏览器,用于浏览各种说明文档Avr-libc ManualAVR-GCC编译器的C语言函数库GNU Manuals OnlineGNU在线帮助手册MFileMakefile编辑软件READMEWinAVR的readme文件 IDE (Integrated Development

2、 Environment)集成开发环境 ICE (In Circuit Emulator) 在线仿真器 JTAG (Joint Test Action Group) 联合测试行为组织 *.hex 文件用来向单片机下载的16进制文件 *.cof文件用来利用AVRstudio进行在线仿真和调试的文件l AVR COFF(AVR Studio 3.x)l AVR “Extended” COFF(AVR Studio 4.07+)*.hex和*.cof这两个文件不能由AVR-GCC本身生成,需要其他辅助工具来完成这一步,这个工具叫avr-objcopy。Makefile文件就是一个描述性质的文件,告知

3、make各文件之间的依赖关系,不需要扩展名。一般在MFile这个程序中生成对应的makefile文件,然后将它复制到PN源文件的文件夹下,就可以进行make all的命令来实现对源文件的编译了。一般而言,makefile文件只需要修改一下几个地方。Main file name (不要带扩展名)和MCU type 以及Default make target,然后点file-save as保存到要编译的文件的文件夹下。C语言小总结 C语言的标识符是区分大小写的,标识符必须以字母或者下划线开头,下划线开头的标识符一般是编译器定义的。 一般而言,如果不是需要使用负整数,尽量使用无符号数整数来表示,这样

4、可以减少系统处理符号的工作,从而提高程序的执行效率。 凡是耳目运算符,都可以和赋值符一起组成复合赋值符,C语言中规定可使用的10中复合赋值运算符:+=;-=;*=;/=;%=;=;&=;=;|= 逗号运算符是C语言的一种特殊的运算符,其作用是将两个表达式连接起来,C语言对两个表达式分别计算,并将后一个表达式的值作为逗号表达式的值。运算优先级最低。例如:a=3*6,4*8;其结果为a=32; C语言规定了六种关系运算符:;=;=;!=其中前四个的优先级比较高,后两个的优先级比较低。 C语言规定的位运算共有一下几种: & 按位与 | 按位或 按位异或 (XOR) 10=1 11=0 取反 右移位翻

5、转:令其和一个相应位为1,其他位位0的常量做异或运算。位置一:令其和一个相应位为1,其他为为0的常量做或运算。PORTA|=(17)位置零:令其和一个相应位为0,其他位为1的常量做与运算。PORTA&=(17) 一般的变量和数组均存储在系统的RAM中,AVR-GCC还支持存储在ROM的数组和字符串,该字符串使用PROGMEM关键字进行声明。如:Const char str PROGMEM =”hello” ; / 声明了一个存储在ROM中的字符串 字符串是不能在程序中用赋值符直接赋值的,但可以借助循环语句,一个变量一个变量的进行拷贝,如下:char a5=”hello” ;char b5;b=

6、a; /*这样的操作是非法的*/for(i=0;isex=M;student31.sex=M;student32.score=95.5; 共同体:共同体的所有成员都占有相同的空间,共同体占用的空间的大小等于共同体内占用空间最大的变量所占用的空间。共同体类型声明形式如下:union 共同体名 数据类型 成员名1; 数据类型 成员名2; 数据类型 成员名n;共同体的变量声明形式为:union 共同体名 共同体变量名共同体变量引用的形式为: 共同体变量.名成员;注意共同体的数据是存储在一个存储空间的,因此共同体变量所存储的值等于最后一次对共同体变量所赋的值。不能对共同体变量名赋值,也不能在定义共同体

7、变量时对其初始化,对共同体的操作必须指明其成员。不能把共同体变量作为函数的参数和返回值。例如:union length_union Unit16_t word; Unit8_t byte2;length; /定义了一个共同体,有两个成员,一个是16位的无符号整数,另外一个是一个包含两个无符号8位整数的数组,二者共用存储空间。在上例中,如果按照length_union.word来操作时,则作为一个16位无符号整数,如果作为length_union.byte0和length_union.byte1操作,则访问的是该存储空间的低位字节和高位字节。 枚举类型如果变量只有几个可能的取值,则可以用枚举类型

8、表示该变量。枚举类型定义形式为:enum 枚举类型标识符 枚举列表;枚举变量的定义为:enum 枚举类型 枚举变量名;例如: enum color red,green,blue;C语言将枚举类型中的枚举元素定义为常量,因此枚举元素是有值的,C语言自动按照值的顺序定义值为0,1,2,枚举元素的值可以改变enum colorred=5,green,blue; /red代表5,后面的未定值依次加一例如:enum colorred,green,blue;enum color crt;crt=red;crt=2; /错误crt=(enum color)2; /将枚举元素中的值为2的元素赋值给crt变量,

9、强制转换。枚举变量的赋值必须用枚举元素,如果直接用整数赋值是不行的,必须采用强制转换。 用户自定义类型用户可以对已存在的C语言类型名重新进行定义,从而方便使用,用户定义类型一般为: typedef 类型名 标识符使用这些自定义类型是,必须包含inttypes.h头文件。例如: #include typedef signed char int8_t /八位有符号数 (无分号)typedef unsigned char uint8_t /八位无符号数 预处理C语言的预处理功能主要有一下三方面:l 宏定义l 文件包含l 条件编译 宏定义宏定义的作用是用指定的标识符代表一个字符串,宏可以参数,也可以不带参数,不带参数的宏定义的一般形式为: #define 标识符 字符串带参数的宏定义声明

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号