男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
FastAVR的IDE-編譯器指示語句1
FastAVR的IDE-編譯器指示語句1
 更新時間:2008-7-26 19:25:19  點擊數:3
【字體: 字體顏色

先看看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 c語言編程風格
  • 下一篇: AVR I/O 端口的設置
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 石门县| 潞西市| 崇义县| 高青县| 昭通市| 霍山县| 新巴尔虎右旗| 民乐县| 青冈县| 三原县| 高雄县| 鱼台县| 鄂伦春自治旗| 全南县| 赞皇县| 柳河县| 公主岭市| 怀来县| 丹江口市| 建昌县| 天峨县| 大化| 金坛市| 新河县| 彭阳县| 洮南市| 绩溪县| 祁东县| 盘山县| 天祝| 深水埗区| 繁昌县| 和顺县| 阿拉尔市| 永胜县| 南召县| 江油市| 龙里县| 麻栗坡县| 贡觉县| 布拖县|