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__
(storeT
). 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 …