您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机FastAVR的IDE-编译器指示语句1 正文
FastAVR的IDE-编译器指示语句1

FastAVR的IDE-编译器指示语句1

点击数:7234 次   录入时间:03-04 11:46:02   整理:http://www.55dianzi.com   AVR单片机

先看看FastAVR的IDE,它有行号,关键字彩色高亮显示,工具栏,消息栏等,没有太多豪华的东西,但是很实用也很简洁,有一点不爽就是你正准备打开一个文件的时候,然后你又点击了取消键,这个时候软件就自动关闭了;下面是新建的一个默认文档,很简单也不干任何事情,但它却是一个可以通过编译的完整的BasIC程序。

  

 

    所有带“$”符号的关键字均为编译器指示语句, 所有的编译器指示语句必须书写在程序的开始的位置,它本身不编译出具体的代码,但是会把相应功能的子程序连接到程序中去,效果有点象C里头的一些头文件包含某某函数,在这一节我们来了解常用的编译器指示语句 。

  1.$Device

处理器配置语句,声明所使用芯片的型号等参数,编译器会编译出适应它的代码,括号里面为可选项。

语法:
$Device=type [, Xram, FirstAdr, XramLength]

注释:
如果芯片支持外部的RAM同时你要使用它那么你必须先声明,比如你使用了M8515,扩展了ram或者8255等。

例子:
$Device= 4433
$Device= tiny13
$Device= M128, Xram, 0, 32k   'M128芯片,有外部RAM,地址从0开始容量32K Byte

以下声明作用相同:
$Device= ATmega16
$Device= mega16
$Device= m16

   2.$Stack
处理器配置语句,定义堆栈的大小,如果堆栈设置得太小就会溢出,从而得出错误的运算结果。
语法:
$Stack=num
注释:
num 是为堆栈保留的字节数
例子:
$Stack = 32  '默认保留32个字节供堆栈使用
$Stack = 50  '保留50个字节供堆栈使用
那么什么时候堆栈的空间会被使用呢?主要是:
· 调用过程和函数(返回地址)
· 自定义函数参数的传递(参数传递基于堆栈的形式)
· 局部变量 (就是声明过程,函数,中断里面定义的变量)
· 加上进入中断程序的时候要保存的寄存器的空间
 

  3.$CLOCk
处理器配置语句,声明芯片的时钟频率,如果声明的时钟频率和芯片实际工作频率不一样将会影响串口波特率和其它延时指令。
语法:
$Clock=const
注释:
const 单位MHz
例子:
$Clock = 3.6864 '时钟频率为3.6864MHz
$Clock = 8.000  '时钟频率为8.000MHz 

  4.$Source 
编译器指示语句,将BASIC源程序里面的注释转移到输出的汇编文件相应的地方,方便大家理解与调试。
语法:
$Source=ON  '注释转移
$Source=OFF '注释不转移
系统默认值是ON

  5.$Asm, $EndAsm
编译器指示语句,在程序中插入汇编
语法:
$Asm
...
$EndAsm
注释:
这个指令允许在线汇编,$Asm 与 $EndAsm 必须成对使用,全局变量可以在汇编中直接使用。
例子:
$Asm       '开始插入汇编
ldi zl,0x65
st c,zl
$EndAsm    '结束插入

   6.$Angles
编译器指示语句,如果你在程序中使用了三角函数,那么就要声明三角函数的单位是度数Degrees还是弧度Radians
语法:
$Angles = Degrees|Radians
注释:
系统默认是弧度Radians,也就是说你本身用弧度那么就无须声明。
例子:
$Angles=Degrees '声明角度单位为度
Dim f1 As Float '定义一个浮点型的变量f1
f1=Sin(30)      'f1=0.5000000

  7.$Baud
处理器配置,定义UART串口的波特率和工作模式
语法:
$Baud = const [, Parity, DataBits, StopBits]
$Baud2 = const [, Parity, DataBits, StopBits] ' 适合第二个UART
假如UART 工作在默认的模式 (无奇偶校验, 8数据位, 1停止位)则可以简写成:
$Baud = 9600
如果指定奇偶校验,将增加额外的程序进行处理!
注释:
const 是串口波特率的一些标准值:
1200, 2400, 4800, 9600, 19200, 38400, 56600,76800,115200
Mega系列芯片可以工作于高波特率
Parity N=无校验, O=奇校验, E=偶校验, M=标志 or S=空
DataBits 5, 6, 7, 8 or 9
StopBits 1 or 2 (在9 DataBits的时候,必须是 1 StopBit)
请看 AVR 数据手册 UART 设置部分
例子:
$Baud = 9600   '波特率9600bps,无奇偶校验, 8数据位, 1停止位
$Baud2 = 9600  '第二串口波特率9600bps,无奇偶校验, 8数据位, 1停止位

  8.$Include
编译器指示语句,指示包含的basic程序的路径,比如液晶用的软字体。
语法:
$Include "Path\BasDoc.bas"
注释:
程序中引用或包含了另外的basic程序,那么这个指令就是告诉编译器被引用basic程序存放的路径。
例子:
$Include "C:\FastAVR\Init.bas"  ‘包含初始化程序Init.bas
$Include "C:\FastAVR\Font.bas"  ‘包含字体程序Font.bas

  9.$IncludeAsm
编译器指示语句,指示包含的ASM汇编程序的路径。
语法:
$IncludeAsm "Path\Utils.asm"
注释:
程序中引用或包含了另外的asm程序,那么这个指令就是告诉编译器被引用asm程序存放位置。
例子:
$Include "C:\FastAVR\Init.asm"

 




本文关键字:编译器  AVR单片机单片机-工控设备 - AVR单片机

《FastAVR的IDE-编译器指示语句1》相关文章>>>