Arduino IDE #ifdef (Español)

Yo uso mi Arduino IDE para subir mi boceto a un Arduino o ATTiny o ATmega328. Como sabes, cada dispositivo puede tener un pinout diferente. ¿El compilador Arduino es compatible con ifdef, dependiendo de la placa a la que estoy conectado?

Por ejemplo

#ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif 

Respuesta

Sí. Aquí está la sintaxis:

#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) //Code here #endif 

También puede hacer algo como esto para el Mega:

#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //Code here #endif 

Suponiendo que la implementación de ATtiny sea correcta, su código debería ser así:

#if defined (__AVR_ATtiny85__) a=0; b=1; c=2; #else //Arduino a=9; b=10; c=11 #endif 

Comentarios

  • En Arduino.h, se utiliza __AVR_ATtiny85__ (T en mayúscula). Sin embargo, no estoy seguro de si hace alguna diferencia.
  • Alternativamente, usando 1.5. + IDE puede probar con el tipo de placa que está construyendo. Consulte Arduino-IDE-1.5 — especificación de hardware de terceros . Ejemplo " #if definido (ARDUINO_AVR_UNO) " o ARDUINO_AVR_MEGA2560 o ARDUINO_AVR_LEONARDO, etc …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *