Arduino IDE #ifdef (Norsk)

Jeg bruker Arduino IDE til å enten laste opp skissen min til en Arduino eller ATTiny eller ATmega328. Som du vet kan hver enhet ha en annen pinout. Støtter Arduino-kompilatoren ifdef, avhengig av kortet jeg er koblet til?

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å gjøre noe slikt for Mega:

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

Forutsatt at implementeringen for ATtiny er riktig, bør koden din være slik:

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

Kommentarer

  • I Arduino.h brukes __AVR_ATtiny85__ (store T). Ikke sikker på om det gjør noen forskjell.
  • alternativt ved å bruke 1.5. + IDE kan du teste mot brettetypen du bygger. Se Arduino-IDE-1.5 — Tredjeparts maskinvarespesifikasjon . Eksempel " #if definert (ARDUINO_AVR_UNO) " eller ARDUINO_AVR_MEGA2560 eller ARDUINO_AVR_LEONARDO, osv …

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *