Categories: Arduino

Arduino Basic (1) – Wiring Framwork

Wiring Framwork

Arduino 所採用的是一個稱作 Wiring 的架構所設計的程式設計流程,他拿掉 main() 這個制式的主程式進入點,改由 setup() 以及 loop() 來取代。

據說這樣可以更容易理解整個程式的運作,並且提高可閱讀性。現在就讓我們一起來看看這是什麼樣的架構吧~

Wiring-Style 的實作

一般來說,傳統的程式語言在撰寫時都會以 main() 來作為程式的進入點,並把主要執行的程式碼都置於這。

來看看如果我們把 Arduino 的語法改寫成一般程式語言撰寫時的樣子:

#include "Arduino.h"

// 輸出腳位設定
int led = 13;

int main() 
{

    pinMode(led, OUTPUT);

    while(1) 
    {
        digitalWrite(led, HIGH);   // HIGH = 1
        delay(1000);               // 1000 ms
        digitalWrite(led, LOW);    // LOW = 0
        delay(1000);               // 1000 ms
    }
}

若進一步實作成 Wiring-style 就會變這樣:

#include "Arduino.h"

int led = 13;

void setup() 
{
    pinMode(led, OUTPUT);
}

void loop() 
{
    digitalWrite(led, HIGH);   // HIGH = 1
    delay(1000);               // 1000 ms
    digitalWrite(led, LOW);    // LOW = 0
    delay(1000);               // 1000 ms
}

int main() {

    setup();

    while(1) {
        loop();
    }
}

而 Arduino 中(或稱 Wiring-style),他隱藏掉 main(),所以在 Arduino 的程式中你只會看到 setup()loop()。因此你看到的 Arduino 程式碼看起來會變成這樣:

int led = 13;

void setup() 
{
  pinMode(led, OUTPUT);
}

void loop() 
{
    digitalWrite(led, HIGH);   // HIGH = 1
    delay(1000);               // 1000 ms
    digitalWrite(led, LOW);    // LOW = 0
    delay(1000);               // 1000 ms
}

從上面的範例中,我們可以看出 Wiring-style 的架構真的可以讓程式更容易閱讀。只要記得,接通電源後只執行一次的程式指令(如腳位設定等初始設定)就放在 setup(),而要不斷執行的程式指令則放在 loop() 中,這樣就不用在 main() 複雜凌亂的程式碼中翻找要修改的程式碼了!真是太美好啦!(才怪)

下一篇 Arduino Basic 將從 Hello, World 開始講起,雖然這系列文章有相當多人寫過,但對於我來說算是一些心得與紀錄。未來還會有幾篇較為進階的使用方式,還請各位讀者於每星期四緊密注意我們的粉絲專頁囉~

duye.chen

Recent Posts

[教學] 打造你的 NFT 智能合約 – ERC721A

GM!前些日子在幣圈亂玩,一路...

2 年 ago

JavaScript – Singleton 設計模式

前言 在設計程式時,我們有時會...

3 年 ago

PlaidML 讓你的 Mac 也能加速 Tensorflow 機器學習!

相信很多使用 Mac 或者手上...

3 年 ago

RESTful API 測試很煩,只好動手寫屬於自己的測試了

寫在最前面 嗨,大家好久不見!...

3 年 ago

Node.js 與 Socket.io – 即時聊天室實作:資料庫

經過前兩篇(一、二)文章,我們...

6 年 ago