Tutoriel 2 sur l’écriture d’une fonction personnalisée des cartes Intel® Galileo
Jusqu’à présent, nous écrivons notre code dans les fonctions de configuration et de boucle. C’est parfaitement correct. Mais que faire si votre programme avait beaucoup de logique complexe ? Comment organiseriez-vous votre code ?
Il y a un art de la programmation et il commence par savoir où mettre votre code.
Le codage peut parfois être désordonnant. Si vous avez déjà lu un code open source, vous pouvez trouver un code qui :
- l’absence de commentaires : l’inclusion des commentaires vous aide et la lecture d’une axitance permet de comprendre ce qui se passe
- la logique n’est pas organisée : l’organisation de votre code en morceaux logiques aide le débogage et la maintenance du code
- les noms sont trompeuses : les noms des variables et des fonctions doivent décrire correctement ce qu’ils ont l’intention de faire
- la mincirité plutôt que la clarté : le code doit être facile à lire ; essayez de ne pas être crypté dans ce que vous essayez d’accomplir
Les programmes peuvent être écrits et organisés dans n’importe quelle langue, mais le programmeur estime qu’il y a place. Cela vous convient si vous êtes le seul à lire votre code. Cependant, si vous travaillez au sein d’une équipe, il est important de fournir certaines directives que tout le monde suit. Un jour, le code que vous écrivez devra être mis à jour et lu par d’autres personnes. Écrire du code organisé et pratiquer des pratiques courantes de codage vous aidera, vous et votre autre ingénieur, à écrire un bon code.
Pour obtenir des conseils sur l’amélioration de votre style de codage, consultez le guide du code C++ de Google.
Il existe deux types de fonctions :
- Exécute les instructions et ne retourne aucune valeur (tapez vide)
- Exécute les instructions et renvoie une valeur (les types comprennent int, l’insévance, le double)
Vous trouverez plus d’informations dans la section Types de données sur la page de référence Arduino.
Types de fonctions
Type void:
void sayHello(){
Serial.println("Hello!");
}
Type integer:
int theAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything(){
return 42;
}
We can assign the value of functions that return something to variables:
int myAnswer = theAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything();
Disons que nous voulions rendre une fonction un peu plus utile. Nous pouvons utiliser des paramètres fonctionnels pour transmettre des données uniques qui auront un impact sur le résultat de la fonction. Par exemple :
int add(int x, int y){
return x + y;
}
Nous appelons cette fonction, en passant des paramètres personnalisés comme suit :
int numbersAdded = add(2, 2); // The variable numbersAdded is equal to 4
Il existe différentes façons d’écrire une fonction. Tout dépend de ce que vous voulez qu’il fasse. Un bon endroit pour commencer à écrire une fonction personnalisée est de définir la signature de la fonction.
Signature fonctionnelle
Avant d’écrire le code d’une fonction, il est préférable de déterminer ce que vous essayez d’accomplir.
- Retournera-t-elle une valeur ?
- Combien de paramètres seront transmis (le cas échéant) ?
- Quel est l’objectif de la fonction ?
Voyons si vous écrivez un programme qui adresse un message personnalisé au moniteur de série. Ce message commentera les conditions météorologiques (qui pourraient être basées sur un capteur de température, par exemple).
Vous ne savez pas encore à quoi ressemble exactement le code de la fonction, mais vous savez ce que vous voulez qu’il fasse :
- Prenez deux paramètres personnalisés pour concéder (ou lier) ensemble
- Prenez un nombre de type Double qui s’ajoutera au message
- Ne retourne pas de valeur
- Le débit du moniteur de série s’affiche en caractères « Il fait 30 degrés à l’extérieur ».
Notre signature pourrait ressembler à ceci :
void my Firmware (String msg1, String msg2, double deg){}
Appeler la fonction aurait l’air de :
Les degrés ici seraient une variable prédéfinie basée sur la mesure d’un capteur de température.
myAsage (« Il est », degrés, « extérieur ») ;
Défi
Comment écrire le code pour terminer la tâche de cette fonction ?
- Introduction
- Entrée avancée
- Modulation de la largeur des pulsations (PWM, Pulse Width Modulation)
- Écriture d’une fonction personnalisée
- Utilisation d’une fonction personnalisée
- Terminer