痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 7824|回復: 0

沈大胖的MCU入門學習之路---04.03.阿當奴語言

[複製鏈接]
發表於 2014-8-12 15:19:33 | 顯示全部樓層 |閱讀模式
本帖最後由 fatzeros 於 2014-8-12 04:49 PM 編輯

前篇:
沈大胖的MCU入門學習之路---04.02.如何命令烏奴(Uno)作事!

大胖之前在沈大胖的MCU入門學習之路---01.程式語言說過,
要對任何的MCU進行控制的動作,就要先把指令燒錄進去,那麼阿當奴也是一樣,
由於MCU只認識機械碼,所以大胖可以透過阿當奴語言將我們比較熟悉一點的語法轉成機械碼。

那麼阿當奴語言要怎麼學習呢?
請先到原廠官網的阿當奴語言參照手冊:http://arduino.cc/en/Reference/HomePage
這個手冊說明了阿當奴語言的基本構成、變數和函數,
閱讀的方向由基本構成(Structure)-->變數(Variables)-->函數(Functions),
每個獨立的區塊由上而下依序閱讀下來,
arduino_ref-002.png

一開始手冊會對這些關鍵字進行說明,然後再舉一個範例,基本上手冊大都以這樣的結構來寫,
大胖以pinMode()這個函數來舉例
arduino_ref-004.png

假如無法上網的時候,其實在阿當奴IDE的安裝目錄\reference\index.html也有,
當然,大胖也找到了中文的翻譯版:http://www.86duino.com/?page_id=2255&lang=TW

先從基本構成(Structure)來看,一開始原廠就開宗明義的說明了,
阿當奴語言的基本構成是由setup()及loop()這兩個函數所構成的,
所有的阿當奴程式裡一定會包含這兩個函數,
setup()函數的意義就是,將需要執行一次,或是初始化各腳位設定的命令放在這個函數裡,
然後使用loop()函數不斷的重複執行命令,這樣就是阿當奴程式的基本構成了。

接下來,會看到一堆的控制語法及運算子等等,
阿當奴語言使用的語法是從C及C++語言演化而來的,
假如已經有基礎的C語言功力的話,這個部份應該會比較駕輕就熟,
假如什麼都沒學過,大胖在這裡建議大家,這個部份沒什麼捷徑,這裡是基本功,就像學習如何使用電表一樣,
好好的把英文參照手冊對照著中文看過,並學習怎麼運用,
學習完阿當奴語言,其實也就對C語言也有基本的認識了,
在以後學習其他的MCU來說,這絕對是利大於弊啊!

在這裡,大胖簡單的說明一下,
在阿當奴語言裡的基本構成,
一開始包含了setup()及loop()兩個必要函數,
然後是控制語法結構(Control Structures)、進階語法(Further Syntax)、再來就是一大堆的運算子,
在運算的部份,一定要分清楚的是指定(=)和等於(==)是不一樣的,
再來就是布林運算子(Boolean Operators)及位元運算子(Bitwise Operators),
這兩個運算子在MCU程式編寫上常常會使用到,也入較偏向邏輯運算的部份,
在複合運算子(Compound Operators)的部份,
i++和++i是不一樣的,i++的意思是 i 指定為 i + 1 ,先回傳i的值後再計算,
++i是i + 1 指定為 i,先計算再回傳i,但是,這都是比較進階的用法,希望一開始還是回歸為 i = i + 1來寫,
這樣程式的可讀性也比較高些。

再來進入到變數(Variables)的部份,這裡說明了阿當奴語言的常量(Constants)、
資料型態(Data Types)、型態轉換(Conversion)及變數作用域(Variable Scope & Qualifiers)等等
要注意的是各個型態所佔用的記憶體容量及數值的區間。

接下來就是函數(Fuction)的部份,這個部份說明了阿當奴語言內建的標準函數,也就是內建的函數庫,
換句話說,大胖可以直接使用這些內建的庫函數,來達成某些特定的功能,而不需要自己重頭寫起,
這些庫函數都是非常有用的,希望大家能清楚了解他們的用法,再加以應用。

以上,就是阿當奴語言簡易介紹,
這個部份真的沒有什麼捷徑和訣竅,只能讀熟手冊和多多應用練習,
再加以實作驗證,多練習及實作再觀察變動程式變數後,所得到的結果,相信就會愈來愈得心應手了!

有關於實作的部份,大胖在沈大胖的MCU入門學習之路---04.01.進入Arduino的世界-介紹篇,這篇裡已有許多教學網站可供大家參考了。

以上,大胖功力有限只能到這裡了,
學習沒有捷徑,請多看多寫多實作,謝謝大家!

評分

5

查看全部評分

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-12-22 03:30 PM , Processed in 0.061360 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.