[MSP430]-004_點亮板上的LED燈
要注意MSP-EXP430G2與MSP-EXP430G2ET,這兩個個開發板非常相似。主要差異在於
Board: MSP-EXP430G2
IDE: energia
開始寫程式時,要先選擇開發板的型號。
選擇序列埠
剛開始學寫程式,當還不熟悉語法及環境時,從模仿並解讀現有的程式一定是比較快的方式。Energia也有內建範例程式,這些範例程式可以幫助初學者快速的熟悉程式寫法。現在就先開啟內建的Bilnk程式,並試著分析這個程式的寫法。
先看一下程式結構,
1. 在“ // ”之後的程式或文字,編譯程式會自動略過這些內容,不會成為程式的一部分,所以可以用來作為程式的註解或是說明,日後可以快速地了解程式內容。要注意的是,這只是將一行的程式或是文字作為註解,當第二行也要成為註解文字,則在第二行也要打上“ // ”。
2. “ /* ”及“ */ ”這兩個符號有別於“ // ”,是可以將整段文字或是程式作為註解,編譯程式會自動略過這些內容。
3.
#define LED RED_LED
將RED_LED定義為LED,這是將板上紅色的LED燈定義成LED這個名稱。MSP-EXP430G2這張開發板板上有紅綠兩個LED燈,所以RED_LED就是一個特殊的名稱,特指板上的P1.0這個腳位,所以RED_LED這個名稱就不能再用了喔。
4.
#define LED GREEN_LED
將GREEN_LED定義為LED,這是將板上綠色的LED燈定義成LED這個名稱。與前面的RED_LED相同,GREEN_LED也是一個特殊的名稱,特指板上的P1.6這個腳位,所以GREEN_LED這個名稱就不能再用了喔。
5.
void setup (){
pinMode (LED, OUTPUT);
}
void setup () { },這段程式是固定寫法,也就是將一開機要設定參數寫在這個大括號中,也就是說這個大括號中的指令只會執行一次,除非再重開MSP430開發板一次。在這個大括號裡面有條指令pinMode(LED, OUTPUT); 這可以解讀成將LED這個腳位的腳位模式pinMode定義為輸出OUTPUT。這裡要先補充一個電子知識,要用MSP430或是其他微處理器的腳位來點亮LED,要先將該腳位定義成“輸出”模式,這樣這個腳位才能輸出電壓及電流,這樣外接的電子零件才能動作。
6.
void loop() {
digitalWrite (LED, HIGH);
delay (1000);
digitalWrite (LED, LOW);
delay (1000);
}
void loop () {} 這段程式是固定寫法,當執行完前面的void setup(){}之後就會執行此段程式,且如同它的名稱一樣,此段程式會一直執行,就像是一個迴圈(loop)一樣。
digitalWrite (LED, HIGH); 可以解讀成用數位寫入(digitalWrite)的方式將LED這個腳位寫入HIGH的電位。依照MSP-EXP430G2開發板的電路圖,紅色LED燈的陽極端(A)接在P1.0,陰極端(K)接在ground,所以當P1.0的輸出電壓為高電壓,則在LED形成順偏,則這個LED燈就會亮起來了。
delay (1000); 可以解讀成用延遲(delay)1000毫秒。
digitalWrite (LED, LOW); 可以解讀成用數位寫入(digitalWrite)的方式將LED這個腳位寫入LOW的電位,即0V。如此這個LED就無法形成順偏,也就是熄滅的狀態。
要注意#define LED RED_LED及#define LED GREEN_LED這兩條指令,RED_LED及GREEN_LED這兩個LED燈都定義成LED這個名稱,觀察程式的順序,是先將RED_LED定義成LED,再將GREEN_LED定義成LED,所以最後LED會是GREEN_LED,而不是RED_LED,所以執行digitalWrite (LED, HIGH)這條指令時,只會亮起綠色的LED燈。
可以預測這個程式的結果應該是綠色的LED亮一秒,滅一秒,接著亮一秒,滅一秒,如此循環。
上傳程式碼到MSP-EXP430G2
上傳完畢
程式結果
沒有留言:
張貼留言