Arduino IDE #ifdef (Français)

Jutilise mon IDE Arduino pour télécharger mon croquis sur un Arduino ou ATTiny ou ATmega328. Comme vous le savez, chaque appareil peut avoir un brochage différent. Le compilateur Arduino prend-il en charge ifdef, selon la carte à laquelle je suis connecté?

Par exemple

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

Réponse

Oui. Voici la syntaxe:

#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__) //Code here #endif 

Vous pouvez également faire quelque chose comme ceci pour le Mega:

#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //Code here #endif 

En supposant que limplémentation pour ATtiny est correcte, votre code devrait être comme ceci:

#if defined (__AVR_ATtiny85__) a=0; b=1; c=2; #else //Arduino a=9; b=10; c=11 #endif 

Commentaires

  • Dans Arduino.h, __AVR_ATtiny85__ est utilisé (majuscule T). Je ne sais pas si cela fait une différence.
  • ou en utilisant 1.5. + IDE, vous pouvez tester le type de carte que vous construisez. Voir Arduino-IDE-1.5 — Spécifications du matériel tiers . Exemple " #if défini (ARDUINO_AVR_UNO) " ou ARDUINO_AVR_MEGA2560 ou ARDUINO_AVR_LEONARDO, etc …

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *