文章程式碼顯示

2017年10月19日 星期四

《入門》寫程式Arduino教學 - 05 : C 語言基本規則 循序執行 區塊


Arduino 在程式撰寫時依循著 C 語言規則,沒有學過基本 C 語言的人也別氣餒,Arduino 會用到的基本 C 語言都將在一章一章中循序漸進的提及。C 語言首要的觀念就是循序執行,也就是說當程式碼在運行時,是單行且照著順序執行的。依上圖所示,一開始程式會從第一行開始運行,執行完第一行後繼續執行第二行的程式碼,接著第三行、第四行 ... 以此類推

在沒有特殊情況發生時,程式碼會會從第一行依序執行到第九行後,程式結束。



顏色的部分,可以看出 void 與 setup 的顏色是不同的。這是因為 void 與 setup 屬於內建的 "關鍵字"



介紹完循序執行與關鍵字後,我們聚焦於符號的部分。由上圖可以看出,第一到四行與第六到九行除了英文字母不同,其架構是一模一樣的。都是 void 加上一個空格後填上 setup 或 loop ,緊接著兩個小括弧再配上一個左大括弧 {

我們先看左大括弧 { 事實上左大括弧與第四行的右大括弧 }成雙成對出現的,代表的是一個 "區塊" 的概念

有了區塊的概念後我們在回頭看 void setup(),長的像這樣形式的被稱為函數(function),而前面的 setup(或loop) 就稱為函數(function)的名稱(function name),也就是說在上圖中有兩個函數,其名稱分別是 setup 以及 loop,並以左右大括弧 { } 區塊來包裹住函數內的程式碼



在撰寫程式碼的時候一定會使用到 setup 及 loop 函數,因 Arduino 內部已經幫我們定義,當開發版通電的瞬間將會先執行 setup 函數內的程式碼,完畢後接著執行 loop 函數內的程式碼,且這兩個關鍵字函數名稱是已經被定義死的,也就是說你不能對其進行更名,大小寫也都須符合,Arduino IDE 才看得懂(仔細看會發現 setup 及 loop 也有變色)

然而這兩種函數有甚麼不同呢?

我們稱 setup 為啟動(初始化)函數,就像是家用電腦一打開時常見的 windows 畫面。而對於 Arduino 而言,初始化一般用來配置腳位的模式(例如配置某個腳位為數位輸出模式,另一個腳位配置為輸位輸入模式 ... 等等)也就是上一章提到的數位輸出,數位輸入等四種模式的其中一種。

loop 函數則像是迷宮一般,當我們一進入 loop 函數就會不斷的反覆執行內部程式碼。由上圖中舉例,當開發版通電後會先進入 setup 函數,接著執行第二行以及第三行的程式碼,第四行是一個右大括弧 } 表示 setup 函數的結束,繼續往下執行 loop 函數內的程式碼,也就是第七行以及第八行。當程式碼執行完第八行後,因為第九行為右大括弧 } 表示 loop 函數的結束,但因為 loop 函數的特性,所以程式碼會往回跳到第八行再次執行,再繼續第九行 ... 如此反覆執行到開發版斷電為止。


下一章我們就要開始撰寫 Arduino 程式了

↓↓↓ 連結到部落格方針與索引 ↓↓↓

Blog 使用方針與索引