Go Down

Topic: [Résolu] Modifier code suivant carte Arduino (Read 646 times) previous topic - next topic

trigger

Jan 20, 2013, 05:07 pm Last Edit: Jan 20, 2013, 06:36 pm by trigger Reason: 1
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

barbudor

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 :
Code: [Select]

#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
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

trigger

Merci pour la réponse :)

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 ...

barbudor

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é.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

trigger

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

skywodd

@Barbudor: tu as fait une petite erreur dans ton define :
Code: [Select]
__AVR_ATmega168__
pas "128" ;)


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

Il serait grand temps de migrer ;)
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

barbudor


@Barbudor: tu as fait une petite erreur dans ton define :
Code: [Select]
__AVR_ATmega168__
pas "128" ;)


Barbudor, le roi du copier-merder XD
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

skywodd


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 :smiley-mr-green:
http://www.atmel.com/devices/atmega128.aspx
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Go Up