아두 이노 IDE #ifdef


13

Arduino IDE를 사용하여 스케치를 Arduino 또는 ATTiny 또는 ATmega328에 업로드합니다. 아시다시피 각 장치마다 다른 핀아웃이있을 수 있습니다. ifdef내가 연결 한 보드에 따라 Arduino 컴파일러가를 지원합니까 ?

예를 들어

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

답변:


13

예. 구문은 다음과 같습니다.

#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). 그래도 차이가 있는지 확실하지 않습니다.
geometrikal

2
또는 1.5. + IDE를 사용하여 빌드중인 보드 유형에 대해 테스트 할 수 있습니다. 참조 아두 이노-IDE-1.5 --- 제 3 자-하드웨어 사양 . 예 : "#if defined (ARDUINO_AVR_UNO)"또는 ARDUINO_AVR_MEGA2560 또는 ARDUINO_AVR_LEONARDO 등 ...
mpflaga
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.