看了Arduino的範例程式也好一陣子,但最近因為單純一行一行下來的command flow不夠用。
就上網找了一些語法的網站來看,如下:
1. 官方:
http://arduino.cc/en/Reference/HomePage
2. 中文語法手冊:
http://www.game7777.net/doku.php?id=arduino:arduinoreference
因為自己不太懂,所以給自己留一點筆記:
一般會先做(1) Pin腳的宣告,(2) void setup (),(3) void loop ()
然後跟資料定義有關的:int, unsigned int, log, const, #define
跟loop結構有關的:if...else架構,while迴圈,for迴圈
int
整數是基底資料型別,佔用2位元組。
整數的範圍為-32,768到32,767( -2^15 ~(2^15)-1)。
整數類型使用2的補數方式存儲負數。
最高位元通常為符號位元,表示數的正負。
其餘位被“取反加1”(此處請參考補數相關資料,不再贅述)
unsigned
int
unsigned int(無符號整型)與整型資料同樣大小,佔據2位元組。
它只能用於存儲正數而不能存儲負數,範圍 0~65,535 (2^16) - 1)。
無符號整型和整型最重要的區別是它們的最高位元不同,既符號位元。
在Arduino整型類型中,如果最高位是1,則此數被認為是負數,
剩下的15位為按2的補數計算所得值。
long
長整數型變數是擴展的數位存儲變數,它可以存儲32位元(4位元組)大小的變數,
從-2,147,483,648到2,147,483,647。
const
const關鍵字代表常數。
它是一個變數限定詞,用於修改變數的性質,使其變為唯讀狀態。
這表示該變數就像任何相同類型的其他變數一樣使用,但不能改變其值。
如果嘗試為一個const變數賦值,編譯時將會報錯。
const關鍵字定義的常數,遵守 variable
scoping 管轄的其他變數的規則。
這一點加上使用 #define 的易犯錯誤,使 const 關鍵字成為定義常量的一個的首選方法。
#define
#define它允許程式設計師在程式編譯之前給常數命名。
在Arduino中,定義的常數不會佔用晶片上的任何程式記憶體空間。
在編譯時編譯器會用事先定義的值來取代這些常數。
然而這樣做會產生一些副作用, 例如,一個已被定義的常量名已經包含在了其他常數名或者變數名中。 在這種情況下,程式內的常數將被 #defined 定義的數值或字串所取代。
通常情況下,優先考慮使用 const 關鍵字替代 #define 來定義常數。
例子
#define ledPin 3
//在編譯時,編譯器將使用數值 3 取代任何用到 ledPin 的地方。
注意:
在#define 聲明後不能有分號。
如果存在分號,編譯器會拋出語義不明的錯誤,甚至關閉程式。
#define ledPin 3; //這是一種錯誤寫法
同樣的,在 #define 聲明中包含等號也會產生語義不明的編譯錯誤從而導致關閉程式。
#define ledPin = 3 //這是一種錯誤寫法
if(條件判斷語句)和 ==、!=、<、>(比較運算子)
if 語句與比較運算子一起用於檢測某個條件是否達成,如某輸入值是否在特定值之上等。