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ță.