Bonjour !
Je me pose une question type programmation...
Je travaille sur un projet, en ce moment, nécessitant un LCD. Pour faire des affichages sur celui-ci, j'utilise la méthode classique suivante, par exemple :
#include LiquidCrystal_I2C.h
#include Wire.h
LiquidCrystal_I2C lcd(0x27, 16, 2);
...
lcd.setCursor(0,0);
lcd.print(“un truc”);
lcd.setCursor(0,1);
lcd.print(“un autre truc”);
Maintenant, imaginons que je veuille, dans ma loop
, faire des tache nécessitants que celle-ci aille vite, et qu'il n'y ai pas de tache longue ou bloquante. Afficher des trucs sur un LCD, c'est long. Je suis dans ce cas pour mon projet. Pour régler ce problème, on m'a conseillé de mettre le code d'affichage de "trucs" dans une fonction, appelée dans la loop
. Apparement, ça permet qu'au lieu de passer du temps a exécuter le code d'affichage, ce qui ralenti la loop
, on appelle seulement une fonction, ce qui est bien plus rapide.
Un exemple de code :
#include LiquidCrystal_I2C.h
#include Wire.h
LiquidCrystal_I2C lcd(0x27, 16, 2);
...
void loop() {
// loop devant s'exécuter rapidement
uniquement des trucs rapides...
// appelle de la fonction d'affichage
fonctionAffichageRapide();
}
void fonctionAffichageRapide() {
// affichages lents
lcd.setCursor(0,0);
lcd.print(“un truc”);
lcd.setCursor(0,1);
lcd.print(“un autre truc”);
}
Ce que je ne comprends pas, c'est que ça voudrait dire que le code d'affichage s’exécuterait en parallèle du code de la loop
? Est-ce réellement plus rapide d'exécuter une fonction que le code de celle-ci uniquement ?
La question que je me pose est : Le compilateur remplace le nom de la fonction par le code qu'elle contient, ou il ne fait qu'appeler cette fonction puis il continue, laissant le code de la fonction s'exécuter en parallèle ?
Merci d'avance pour vos réponses !
Cordialement
Pandaroux007