LOCODUINO

Forum de discussion
Dépôt GIT Locoduino
Flux RSS

lundi 20 novembre 2017

69 visiteurs en ce moment

Ces tableaux qui peuvent nous simplifier le développement Arduino

. Par : bobyAndCo

Il est par exemple assez fréquent de voir des programmes où la déclaration et l’initialisation des broches sont faites de la manière suivante : const int Pin23 = 23; const int Pin24 = 24;const int Pin25 = 25;const int Pin26 = 26;const int Pin27 = 27;const int Pin28 = 28;... Et parfois, les listes sont bien plus longues. Et puis, dans le setup on (...)

Retourner à l'article

Vous répondez à :

 

Merci aussi pour vos questions fort intéressantes également.

Il y a-t-il un avantage à déclarer une constante par l’intermédiaire d’un directive (« #define NBRE_AIGUILLAGE 16 ») plutôt que que par la méthode "habituelle" (« const byte nbre_aiguillages = 16 ; »)

Utiliser les constantes de préprocesseurs #define est très utilisé en programmation C/C++. Regardez par exemple comment sont écrites les bibliothèques.

 

Cependant, quand je lis la page du site Arduino, je constate qu’ils déconseillent l’utilisation de #define au profit de ce que vous appelez justement la méthode habituelle.

https://www.arduino.cc/en/Reference/Define

 

Jean-Luc avait écrit un petit article sur les constantes :
http://www.locoduino.org/spip.php?article102
où il mettait en garde sur le choix judicieux des noms pour éviter toute déconvenue. Il semble bien que ce soit pour cela que le site Arduino en déconseille l’usage.

 

Personnellement, je trouve tellement pratique leur utilisation. J’utilise un nom en majuscule qui est une convention et qui me permet de les identifier rapidement dans le code.

S’il y a au moins un avantage, c’est que je suis certain d’avoir bien déclaré une constante alors que je peux oublier le préfix const lors de la déclaration d’une variable qui devrait justement l’être en constante.

Par ailleurs, dans le programme exemple qui utilise la méthode "habituelle", il y a un bug potentiel car la constante déclarée en entête n’est pas utilisée dans la boucle void : la valeur est écrite "en dur" (« for (int i = 0 ; i < 16 ; i++) »)

Je ne pense pas qu’il y ait de bug potentiel en écrivant cela. J’ai déclaré et initialisé une variable en dehors de toute fonction (setup, loop ou autres) const byte nbre_aiguillages = 16;

 

C’est donc une variable globale. Je l’utilise ensuite à la ligne du dessous et c’est tout. Ce n’est certes pas optimal en termes de programmation (ça se voulait être l’exemple à ne pas suivre) mais cela ne constitue en rien un bug potentiel.

 

Bien amicalement,

Christophe

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

7 Messages

Rubrique Programmation

Comment gérer le temps dans un programme ?

La programmation, qu’est ce que c’est

Types, constantes et variables

Installation de l’IDE Arduino

Répéter des instructions : les boucles

Les interruptions (1)

Instructions conditionnelles : le if … else

Instructions conditionnelles : le switch … case

Comment gérer l’aléatoire ?

Calculer avec l’Arduino (1)

Calculer avec l’Arduino (2)

Les structures

Systèmes de numération

Les fonctions

Trois façons de déclarer des constantes

Transcription d’un programme simple en programmation objet

Ces tableaux qui peuvent nous simplifier le développement Arduino

Les chaînes de caractères

Trucs, astuces et choses à ne pas faire !

Processing pour nos trains

Arduino : toute première fois !

Démarrer en Processing (1)

Le monde des objets (1)

Le monde des objets (2)

Le monde des objets (3)

Le monde des objets (4)

Les pointeurs (1)

Les pointeurs (2)

Les Timers (I)

Les Timers (II)

Les Timers (III)

Les Timers (IV)

Les Timers (V)

Bien utiliser l’IDE d’Arduino (1)

Bien utiliser l’IDE d’Arduino (2)

Piloter son Arduino avec son navigateur web et Node.js (1)

Piloter son Arduino avec son navigateur web et Node.js (2)

Piloter son Arduino avec son navigateur web et Node.js (3)

Les derniers articles

Ces tableaux qui peuvent nous simplifier le développement Arduino


bobyAndCo

Processing pour nos trains


Pierre59

Piloter son Arduino avec son navigateur web et Node.js (3)


bobyAndCo

Piloter son Arduino avec son navigateur web et Node.js (2)


bobyAndCo

Démarrer en Processing (1)


DDEFF

Piloter son Arduino avec son navigateur web et Node.js (1)


bobyAndCo

Arduino : toute première fois !


Christian

Bien utiliser l’IDE d’Arduino (2)


Thierry

Bien utiliser l’IDE d’Arduino (1)


Christian, Dominique, Jean-Luc, Thierry

Les Timers (V)


Christian

Les articles les plus lus

Les interruptions (1)

Les Timers (I)

Instructions conditionnelles : le if … else

Piloter son Arduino avec son navigateur web et Node.js (1)

Calculer avec l’Arduino (1)

Comment gérer le temps dans un programme ?

Les chaînes de caractères

Installation de l’IDE Arduino

Bien utiliser l’IDE d’Arduino (1)

Les Timers (III)