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
Arduino.h
wordt__AVR_ATtiny85__
gebruikt (hoofdletterT
). Ik weet echter niet zeker of het enig verschil maakt.