저는 Arduino IDE를 사용하여 스케치를 Arduino 또는 ATTiny 또는 ATmega328에 업로드합니다. 아시다시피 각 장치는 다른 핀아웃을 가질 수 있습니다. Arduino 컴파일러는 연결된 보드에 따라 ifdef
를 지원합니까?
예 :
#ifdef Attiny85 a=0; b=1; c=2; #else // arduino a=9; b=10; c=11; #endif
답변
예. 구문은 다음과 같습니다.
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) //Code here #endif
메가에서도 다음과 같은 작업을 수행 할 수 있습니다.
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //Code here #endif
ATtiny 구현이 올바르다 고 가정하면 코드는 다음과 같아야합니다.
#if defined (__AVR_ATtiny85__) a=0; b=1; c=2; #else //Arduino a=9; b=10; c=11 #endif
Arduino.h
에서는__AVR_ATtiny85__
가 사용됩니다 (대문자T
). 차이가 있는지 확실하지 않습니다.