使用 86Duino Linux SDK 撰寫程式
86Duino Linux SDK 位於 /home/dmp/86Duino_Linux_SDK 目錄下,提供支援 86Duino 硬體功能的 C++ 函式庫,可讓您在一般 C++ 程式中使用相容 Arduino 的 API 來存取 86Duino 的 I/O 介面,並以 gcc 編譯出在 86Duino 上執行的 Linux 程式。
86Duino Linux SDK 允許使用者用兩種寫法來撰寫程式:類 Arduino sketch 程式寫法和標準 C++ 程式寫法。進入 /home/dmp/86Duino_Linux_SDK/examples 目錄中,使用者會看到兩個子目錄,分別是 arduino 和 cpp,使用者若對 Arduino sketch 程式寫法較為熟悉,可以進入 arduino 子目錄,參考其中的範例程式;另一方面,若使用者對標準 C++ 程式寫法較熟悉,則可進入 cpp 子目錄,參考其中範例程式的寫法。以下我們將以 86Duino 的 Blink sketch 範例程式為例,簡單說明類 Arduino sketch 程式寫法和標準 C++ 程式寫法的差異:
86Duino Coding IDE 裡的 Blink sketch 範例程式如下:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
在 86Duino Linux SDK 中,以類 Arduino sketch 程式寫法撰寫的 Blink 程式,應改成:
#include "Arduino.h"
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
可以看到,差別只在於使用者需自行在程式裡 include Arduino.h 這個標頭檔。
至於以標準 C++ 程式寫法撰寫的 Blink 程式,則應改成:
#include "Arduino.h"
int main()
{
pinMode(13, OUTPUT);
while(1)
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
return 0;
}
在 C++ 程式裡,使用者明確地寫出 main() 主函式,此外,也需 include 標頭檔 Arduino.h,才能在程式中呼叫 86Duino 的各個 Standard API 函式。
在前面提及的 arduino 和 cpp 兩個範例程式目錄內,都可以找到相應的 Makefile 來編譯使用 86Duino Linux SDK 的程式,直接在該目錄下鍵入 make 指令,即可編譯出名為 86duino 的執行檔。使用者可自行研究 Makefile 的內容,來瞭解如何以 gcc 編譯使用 86Duino Linux SDK 的程式。需進一步說明的是,如果您修改了範例程式,並在程式中呼叫了 86Duino Linux SDK 裡提供的函式庫,您必須也同時修改 Makefile,將使用到的函式庫加入到編譯流程中。例如,假設您修改範例程式額外呼叫了 EEPROM 函式庫,您應打開 Makefile,找到開頭為 THIRD_LIB_NAME 的那一行:
然後在 := 右邊(除了原本的 TimerOne 之外)加上 EEPROM。注意,您呼叫的函式庫可能還會在内部調用其它函式庫的功能,在這種情況下,您應該在 THIRD_LIB_NAME := 後面將所有被調用到的函式庫加上去,下表列出 86Duino Linux SDK 內建的函式庫裡,所有會互相依賴的函式庫:
| 函式庫名稱 | 被調用的函式庫 |
| TFT | SPI |
| FreeIMU1 | Wire |
| RF12 | SPI |
| RF24 | SPI |
| Mirf | SPI |
| RadioHead | SPI |
關於最新 86Duino Linux SDK 裡支援的 86Duino Standard API 及內建函式庫完整列表,請參閱此連結。
The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.

