Eu uso meu Arduino IDE para carregar meu esboço para um Arduino ou ATTiny ou ATmega328. Como você sabe, cada dispositivo pode ter uma pinagem diferente. O compilador Arduino suporta ifdef
, dependendo da placa a que estou conectado?
Por exemplo
#ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif
Resposta
Sim. Esta é a sintaxe:
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) //Code here #endif
Você também pode fazer algo assim para o Mega:
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //Code here #endif
Supondo que a implementação do ATtiny esteja correta, seu código deve ser assim:
#if defined (__AVR_ATtiny85__) a=0; b=1; c=2; #else //Arduino a=9; b=10; c=11 #endif
Comentários
- Em
Arduino.h
,__AVR_ATtiny85__
é usado (maiúsculoT
). Não tenho certeza se isso faz alguma diferença. - alternativamente usando 1.5. + IDE você pode testar contra o tipo de placa que você está construindo. Consulte Arduino-IDE-1.5 — especificação de hardware de terceiros . Exemplo " #if definido (ARDUINO_AVR_UNO) " ou ARDUINO_AVR_MEGA2560 ou ARDUINO_AVR_LEONARDO, etc …