AVR单片机C语言编译器.pdf





《AVR单片机C语言编译器.pdf》由会员分享,可在线阅读,更多相关《AVR单片机C语言编译器.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 AVR 单片机 C 语言编译器 Win-AVR 是流行的 GNU 编译器在 AVR 平台上的移植。安装完毕后会在桌面上出现一下七个快捷方式,它们的作用如下:Programmers Notepad 源文件的编辑软件,可提供应用程序接口 AVR Insight GDB Debug 的前端工具,用于仿真调试 TKInfo GNU 超文本格式的图形浏览器,用于浏览各种说明文档 Avr-libc Manual AVR-GCC 编译器的 C 语言函数库 GNU Manuals Online GNU 在线帮助手册 MFile Makefile 编辑软件 README WinAVR 的 readme 文件
2、IDE(Integrated Development Environment)集成开发环境 ICE(In Circuit Emulator)在线仿真器 JTAG(Joint Test Action Group)联合测试行为组织 *.hex 文件用来向单片机下载的 16 进制文件 *.cof 文件用来利用 AVRstudio 进行在线仿真和调试的文件 AVR COFF(AVR Studio 3.x)AVR“Extended”COFF(AVR Studio 4.07+)*.hex 和*.cof 这两个文件不能由 AVR-GCC 本身生成,需要其他辅助工具来完成这一步,这个工具叫 avr-objco
3、py。Makefile 文件就是一个描述性质的文件,告知 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 语言规定的位运算共有
5、一下几种:&按位与|按位或 按位异或(XOR)10=1 11=0 取反 右移 位翻转:令其和一个相应位为 1,其他位位 0 的常量做异或运算。位置一:令其和一个相应位为 1,其他为为 0 的常量做或运算。PORTA|=(17)位置零:令其和一个相应位为 0,其他位为 1 的常量做与运算。PORTA&=(17)一般的变量和数组均存储在系统的 RAM 中,AVR-GCC 还支持存储在 ROM 的数组和字符串,该字符串使用 PROGMEM 关键字进行声明。如:Const char str PROGMEM=”hello”;/声明了一个存储在 ROM 中的字符串 字符串是不能在程序中用赋值符直接赋值的,
6、但可以借助循环语句,一个变量一个变量的进行拷贝,如下:char a5=”hello”;char b5;b=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_uni
8、on.byte1操作,则访问的是该存储空间的低位字节和高位字节。枚举类型 如果变量只有几个可能的取值,则可以用枚举类型表示该变量。枚举类型定义形式为: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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AVR 单片机 语言 编译器

限制150内