Arduino IDE #ifdef


13

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

例えば

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

回答:


13

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

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

Megaに対して次のようなこともできます。

#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)。しかし、それが違いを生むかどうかはわかりません。
geometrikal

2
あるいは、1.5。+ IDEを使用して、作成中のボードタイプに対してテストできます。Arduino-IDE-1.5 --- 3rd-party-Hardware-specificationを参照してください。例「#if defined(ARDUINO_AVR_UNO)」またはARDUINO_AVR_MEGA2560またはARDUINO_AVR_LEONARDOなど...
mpflaga
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.