Arduino IDE #ifdef (Română)

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 

Comentarii

  • În Arduino.h, se utilizează __AVR_ATtiny85__ (capital T). Nu sunt sigur dacă are vreo diferență.
  • alternativ folosind 1.5. + IDE puteți testa în funcție de tipul de bord pe care îl construiți. Consultați Arduino-IDE-1.5 — Specificații hardware-terță parte . Exemplu " #if definit (ARDUINO_AVR_UNO) " sau ARDUINO_AVR_MEGA2560 sau ARDUINO_AVR_LEONARDO, etc …

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *