Arduino IDE #ifdef

Я использую свою среду Arduino для загрузки моего эскиза в Arduino или ATTiny или ATmega328. Как вы знаете, у каждого устройства может быть разная распиновка. Поддерживает ли компилятор Arduino ifdef , в зависимости от платы, к которой я подключен?

Например

  #ifdef Attiny85
       а = 0; б = 1; с = 2;
#else
       //arduino
       а = 9; б = 10; с = 11;
#endif
 
12 голосов | спросил PhillyNJ 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 13 Sep 2014 16:38:19 +0400 2014, 16:38:19

1 ответ


12

Да. Вот синтаксис:

  #if defined (__ AVR_ATmega328P__) || определен (__ AVR_ATmega168__)
    //Код здесь
#endif
 

Вы также можете сделать что-то подобное для Mega:

  #elif defined (__ AVR_ATmega1280__) || определен (__ AVR_ATmega2560__)
    //Код здесь
#endif
 

Предполагая, что реализация для ATtiny правильная, ваш код должен выглядеть следующим образом:

  #if defined (__AVR_ATtiny85__)
       а = 0; б = 1; с = 2;
#else
       //Arduino
       а = 9; б = 10; с = 11
#endif
 
ответил Anonymous Penguin 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 13 Sep 2014 16:50:31 +0400 2014, 16:50:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132