Arduino IDE #ifdef


13

Çizimimi bir Arduino veya ATTiny veya ATmega328'e yüklemek için Arduino IDE'mi kullanıyorum. Bildiğiniz gibi her cihazın farklı bir çıkışı olabilir. Arduino derleyici ifdef, bağlı olduğum panoya bağlı olarak destekliyor mu?

Örneğin

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

Yanıtlar:


13

Evet. Sözdizimi şöyledir:

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

Mega için de böyle bir şey yapabilirsiniz:

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

ATtiny uygulamasının doğru olduğunu varsayarsak, kodunuz şöyle olmalıdır:

#if defined (__AVR_ATtiny85__)
       a=0; b=1; c=2;
#else
       //Arduino
       a=9; b=10; c=11
#endif

In Arduino.h, __AVR_ATtiny85__kullanılır (sermaye T). Yine de herhangi bir fark yaratıp yaratmadığından emin değilim.
geometrikal

2
alternatif olarak 1.5. + IDE kullanarak inşa ettiğiniz pano tipine göre test yapabilirsiniz. Bkz Arduino-IDE-1.5 --- 3. taraf-Donanım-şartname . Örnek "#if tanımlı (ARDUINO_AVR_UNO)" veya ARDUINO_AVR_MEGA2560 veya ARDUINO_AVR_LEONARDO, vb ...
mpflaga
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.