Arduino IDE #ifdef (Dansk)

Jeg bruger min Arduino IDE til enten at uploade min skitse til en Arduino eller ATTiny eller ATmega328. Som du ved, kan hver enhed have en anden pinout. Understøtter Arduino-kompilatoren ifdef, afhængigt af det kort, jeg er tilsluttet?

For eksempel

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

Svar

Ja. Her er syntaksen:

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

Du kan også gøre noget lignende til Mega:

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

Forudsat at implementeringen til ATtiny er korrekt, skal din kode være sådan:

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

Kommentarer

  • I Arduino.h anvendes __AVR_ATtiny85__ (store T). Ikke sikker på, om det gør nogen forskel.
  • alternativt ved hjælp af 1.5. + IDE kan du teste mod den bordtype, du bygger. Se Arduino-IDE-1.5 — tredjeparts-hardwarespecifikation . Eksempel " #if defineret (ARDUINO_AVR_UNO) " eller ARDUINO_AVR_MEGA2560 eller ARDUINO_AVR_LEONARDO osv …

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *