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 …