Arduino IDE #ifdef (日本語)

Arduino IDEを使用して、スケッチをArduino、ATTiny、またはATmega328にアップロードします。ご存知のように、各デバイスは異なるピン配置を持つことができます。接続しているボードに応じて、Arduinoコンパイラはifdefをサポートしていますか?

#ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif 

回答

はい。構文は次のとおりです。

#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) //Code here #endif 

メガに対して次のようなこともできます:

#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //Code here #endif 

ATtinyの実装が正しいと仮定すると、コードは次のようになります。

#if defined (__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 を参照してください。例" #if defined(ARDUINO_AVR_UNO)"またはARDUINO_AVR_MEGA2560またはARDUINO_AVR_LEONARDOなど…

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です