Arduino IDE-m segítségével a vázlatomat feltöltöm Arduino-ba, vagy ATTiny-be, vagy ATmega328-ba. Mint tudják, minden eszköznek lehet más és más csatlakozója. Támogatja-e az Arduino fordító a ifdef
t, attól a táblától függően, amelyhez csatlakozom?
Például
#ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif
Válasz
Igen. Itt van a szintaxis:
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) //Code here #endif
Ilyeneket is megtehet a Megához:
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //Code here #endif
Ha feltételezzük, hogy az ATtiny megvalósítása helyes, akkor a kódjának a következőnek kell lennie:
#if defined (__AVR_ATtiny85__) a=0; b=1; c=2; #else //Arduino a=9; b=10; c=11 #endif
Megjegyzések
- A
Arduino.h
mezőben__AVR_ATtiny85__
szerepel (nagybetűsT
). Nem biztos benne, hogy van-e valami különbség. - az 1.5. + IDE alternatívájaként tesztelheti az épített tábla típusát. Lásd: Arduino-IDE-1.5 — harmadik fél hardver-specifikációja . Példa " #if definiált (ARDUINO_AVR_UNO) " vagy ARDUINO_AVR_MEGA2560 vagy ARDUINO_AVR_LEONARDO stb …