1、基本語法介紹
一個簡單的AVR程序
#include
#include
void main()
{
PORTA = 0x0F; //給PA口賦值,讓PA口低四位為1,高四位為0
while(1)
;
}本程序的作用是把PA口的值設為0x0F。
1、程序中以井號開頭的語句#include 是包含特定的頭文件,叫預處理指令,i0m16v表示使用的是mega16,macros.h包含了必須的avr操作命令。
2、C語言的程序是由函數構成的,如上面的那個void main(),前面的void表明函數沒有返回值。每一個c程序里面里有且只有一個main()函數,系統(tǒng)啟動后就從main()開始運行。
3、函數內部的內容以大括號“{”和"}"擴起來,每句語句用分號“;”結束,若分號前面沒有內容,編譯之后也無任何操作語句。
4、C程序中可以加入一些說明文字,單行以雙斜扛“//”開始,如果是多行,就用"/*"開始,以“*/”結束,如 /*注釋 */ 。
5、函數可以有參數,一律放在小括號內。
6、利用C語言可以輕松的對AVR的設備組件進行操作,如程序中的PORTA = 0x0F;
7、任何一個AVR C程序都必須是一個無限循環(huán),否則程序會沿著程序存儲區(qū)一直運行,直至溢出程序存儲區(qū),程序從頭運行。
2、AVR C語言的基本字符、標識符和關鍵字
avr c語言和普通c語言一樣,基本字符有阿拉伯數字0~9;大小寫拉丁字母a~z和A~Z;一些選定的可打印字符,如"~!@#¥%^&*()_-+={}[],.;<>/?|\";空格符、換行符和制表符這三種空白符起到分割成分和編排格式的作用。
對系統(tǒng)對象命名,稱為標識符。標識符由數字、字母、下劃線組合的字符串序列構成,字母區(qū)分大小寫。如下都是合法的表示符:
AVR_IO PORTA CSR IT0 temp1
注意:不能以數字開頭的字符串做標識符。比如 1abc 是不合法的。
C語言的合法標識符有一部分被編譯器保留作為特殊用途,這樣的標識符稱為關鍵字。C語言的關鍵字有:(以字母先后為序)
auto break case char const continue default do double else enum extern float for goto if int long register return short signed
sizeof statIC struct switch typedef union unsigned void volatile while
注意,原則上除關鍵字外,可以使用任何有效的標識符。但實際上,根據系統(tǒng)不同,有些特殊標識符具有特殊含義,不應被使用。在AVR里,一些端口的名稱、寄存器的名稱已經被系統(tǒng)定義,最好不要改變其定義,如PORTA DDRA TIMASK 等。
3、數據類型
C語言嚴格規(guī)定數據類型,AVR資源有限,如果數據類型選用不好,資源很快就會耗盡。如,盡量不要使用浮點類型的運算,1.2*1.2的浮點數運算至少要占用mega16的百分之十以上的空間。
選擇數據類型時需要注意不要操作數據能表示的范圍,比如要表示60000,就不能用char,必須用int。
整數類型的類型名前可加修飾符unsigned和signed,表示無符號數和有符號數,其中unsigned可以省略,默認表示無符號數,一般來說,盡量使用無符號數可以節(jié)約資源。
以下三種為整數類型:
1、整數類型:一般類型的整型 int,16位二進制編碼,表示的數0~65536,及216。有符號類型,signed int 表示范圍-32768~32767。
2、長整型類型:長整型(long int)類型的二進制編碼是32位。有符號的長整型類型(long)表示范圍-231~231-1;無符號的類型(unsigned long)的表示范圍為0~232-1。
3、超長整數類型:超長整數類型(long long)的二進制編碼是64位。有符號的長整型類型(long)表示范圍-263~263-1;無符號的類型(unsigned long)的表示范圍為0~264-1。
以下為實數類型(浮點數類型):
1、單精度浮點數類型:float,用32位二進制數表示。
2、雙精度浮點數類型:long double,用64位二進制數表示。
字符類型和字符串
字符類型的類型名為char,目前最常用的是ASCII字符集,其中字符包擴所有的大小寫字母,數字,常用字符等共計128割字符。擴展的ASCII字符集包括256個字符,字符類型占用一個字節(jié)。
一些特殊的字符串的表示方法:以反斜扛加特定字符。如 ’ \n ’ 回車符; ‘ \" ’ 雙引號; ‘ \’ ’ 單引號字符; ‘ \\ ’ 反斜杠。
無符號的字符類型: char 表示范圍 0~255。
有符號的字符類型: signed char表示范圍-128~127。





