Arduino IDE #ifdef

Ik gebruik mijn Arduino IDE om mijn schets te uploaden naar een Arduino of ATTiny of ATmega328. Zoals u weet, kan elk apparaat een andere pinout hebben. Ondersteunt de Arduino-compiler ifdef, afhankelijk van het bord waarmee ik verbonden ben?

Bijvoorbeeld

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

Antwoord

Ja. Hier is de syntaxis:

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

Je kunt ook zoiets als dit doen voor de Mega:

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

Ervan uitgaande dat de implementatie voor de ATtiny correct is, zou uw code als volgt moeten zijn:

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

Reacties

  • In Arduino.h wordt __AVR_ATtiny85__ gebruikt (hoofdletter T). Ik weet echter niet zeker of het enig verschil maakt.
  • Of gebruik 1.5. + IDE om te testen tegen het bordtype dat je aan het bouwen bent. Zie Arduino-IDE-1.5 — Hardware-specificatie van derden . Voorbeeld " # indien gedefinieerd (ARDUINO_AVR_UNO) " of ARDUINO_AVR_MEGA2560 of ARDUINO_AVR_LEONARDO, enz …

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *