題:
Arduino IDE #ifdef
PhillyNJ
2014-09-13 17:38:20 UTC
view on stackexchange narkive permalink

我使用Arduino IDE將我的草圖上傳到Arduino或ATTiny或ATmega328。如您所知,每個設備可以具有不同的引腳排列。 Arduino編譯器是否根據我所連接的板支持 ifdef

例如

  #ifdef Attiny85 a = 0; b = 1; c = 2; #else // arduino a = 9; b = 10; c = 11; #endif  
一 回答:
Anonymous Penguin
2014-09-13 17:50:31 UTC
view on stackexchange narkive permalink

是的。語法如下:

  #if已定義(__AVR_ATmega328P__)|| define(__ AVR_ATmega168__)//這裡的代碼#endif  

您也可以為Mega做類似的事情:

  #elif define(__ AVR_ATmega1280__)|| define(__ AVR_ATmega2560__)//此處的代碼#endif  

假設ATtiny的實現正確,則您的代碼應如下所示:

  #if (__AVR_ATtiny85__)a = 0; b = 1; c = 2; #else // Arduino a = 9; b = 10; c = 11#endif  
在Arduino.h中使用了__AVR_ATtiny85__(大寫字母T)。不確定是否有任何區別。
或者使用1.5。+ IDE,您可以針對正在構建的電路板類型進行測試。參見[Arduino-IDE-1.5 --- 3rd-party-Hardware-specification](https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification#boardstxt )。例如“ #if defined(ARDUINO_AVR_UNO)”或ARDUINO_AVR_MEGA2560或ARDUINO_AVR_LEONARDO等。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...