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
)。ただし、違いがあるかどうかはわかりません。