Folosesc ID-ul meu Arduino pentru a încărca schița pe un Arduino sau ATTiny sau ATmega328. După cum știți, fiecare dispozitiv poate avea un pinout diferit. Compilatorul Arduino acceptă ifdef, în funcție de placa la care sunt conectat?
De exemplu
#ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif
Răspuns
Da. Iată sintaxa:
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) //Code here #endif
De asemenea, puteți face așa ceva pentru Mega:
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //Code here #endif
Presupunând că implementarea pentru ATtiny este corectă, codul dvs. ar trebui să fie astfel:
#if defined (__AVR_ATtiny85__) a=0; b=1; c=2; #else //Arduino a=9; b=10; c=11 #endif
Arduino.h, se utilizează__AVR_ATtiny85__(capitalT). Nu sunt sigur dacă are vreo diferență.