2013-06-03 59 views
0

我試圖用#define創建一個常數,並定義一個引腳,檢查這個代碼如何使用#define在Arduino中分配引腳?

#define PIN_MICROPHONE 13; 

void loop() 
{ 
    analogRead(PIN_MICROPHONE); 
} 

但是在編譯的時候,它說這個錯誤:

: In function 'void loop()': 
error: expected `)' before ';' token 
error: expected primary-expression before ')' token 
error: expected `;' before ')' token 

如何使用#define宏來定義引腳?

此代碼編譯好的

#define PIN_MICROPHONE 13; 

void loop() 
{ 
    analogRead(13); 
} 

我使用的Arduino 1.0.5

+0

Arduino語言是**更像**,而不是C(它支持'類'使用)。 –

+0

這會如何幫助我解決這個問題? –

+1

另一個分號瞄準,沒有人免費... –

回答

7

的問題是你的分號。

#define在結尾不需要分號。

#define PIN_MICROPHONE 13 
void loop() 
{ 
    analogRead(PIN_MICROPHONE); 
} 

通常#define是一個預編譯的指令。這意味着在編譯代碼之前,在文本上進行查找和替換。所以IDE「看到」下面的代碼。 PS:我認爲#define在Arduino風格指南中沒有被鼓勵。

+2

#defines很好;-) http://arduino.cc/en/Reference/Define雖然顯然** const **是首選。 –

+0

哦,我的天啊,我現在感覺非常高興......,我有多年C,C++編碼經驗,現在我很驚訝,這怎麼會發生在我身上...... 謝謝John b,I相信我需要休息一下:) –