[Résolu] Modifier code suivant carte Arduino

Bonjour,

Est il possible de faire un test en debut de programme ( ou lors de la compilation) pour modifier des constantes de broches suivant la carte sur la carte ou on envoie le code. Je ne sais pas trop comment expliquer et le vocabulaire me dépasse un peu ^^

En gros, un truc du style :

If( Carte == Arduino UNO){

const int BP1 = 2;

}else if ( Carte == Arduino MEGA){

const int BP1 = 22;

}

Tout ça de le but de ne pas à avoir à modifier le code suivant la carte.

Je ne sais pas si cela et possible ou si ma question est ridicule ...

Amicalement
Trigger

Non, ca ne marchera pas car il y a déjà des parties des libs Arduino qui dépendent du type de carte. Tu ne peut pas faire un seul HEX qui marchera sur toutes les cartes.
Mais tu peux faire un seul INO qui - une fois comiplé pourla bonne carte - marchera sur la bonne carte

Corolaire : Il faut le faire à la compilation avec des #if

Par exemple :

#if defined(__AVR_ATmega128__)
// ici ce qu'il faut faire sur une vielle Arduino avec un ATmeg128
#elif defined(__AVR_ATmega328__)
// ici ce qu'il faut faire sur une UNO our Duemilanove avec ATmega328P
#elif defined(__AVR_ATmega32U4__)
// par ici pour la Leonardo
#elif defined(__AVR_ATmega2560__)
// et pour un mega2560
#else
#error *** ATTENTION Carte non définie
#endif

Merci pour la réponse :slight_smile:

Donc si j'ai bien compris on peux faire un .pde comportant le code que tu as donné et le compilateur fait le reste ?

Désolé je ne maitrise pas du tout le vocabulaire ...

Oui, un INO (PDE c'est finit maintenant, faut passer à la v1.0.x et les sketches ont l'extension INO)

Suivant que dans lIDE on choisit "Arduino UNO" ou "Arduino Mega2560", ... le bon code sera utilisé.

Pardons je ne suis toujours pas passé à la version 1.0.x , honte à moi :S

En tous cas merci beaucoup pour ces explcations !

Amicalement,
Trigger

@Barbudor: tu as fait une petite erreur dans ton define :

__AVR_ATmega168__

pas "128" :wink:

trigger:
Pardons je ne suis toujours pas passé à la version 1.0.x , honte à moi :S

Il serait grand temps de migrer :wink:

skywodd:
@Barbudor: tu as fait une petite erreur dans ton define :

__AVR_ATmega168__

pas "128" :wink:

Barbudor, le roi du copier-merder XD

barbudor:
Barbudor, le roi du copier-merder XD

Pas totalement merdé puisse que l'ATmega128 existe, mais c'est pas tout à fait le même CI :grin: