Ce qui me donne un affichage stable de la date mais un affichage qui scintille pour l'heure (assez inesthétique).
Est ce du à l'exécution de la boucle ?
Peut on supprimer cet effet?
Petite précision : les instructions serial sont là pour les essais sur le moniteur série
void AffichHeure()
{
lcd.setCursor(0,0); lcd.print(" ");
lcd.setCursor(8,0);
lcd.print(t.hour);
lcd.print("H");
if ((t.min) < 10)
{
lcd.print("0");
}
lcd.print(t.min);
}
// Affichage de la date
void AffichDate()
{
lcd.setCursor(0,0);
lcd.print(JdlS); lcd.print(" "); lcd.print(t.mday); lcd.print(" ");
lcd.print(Mois); lcd.print(" "); lcd.print(t.year); lcd.print(" ");
}
C'est peut être l'instruction d'effacement de ligne qui crée le scintillement?
Mais si je l'efface pas avant d'écrire autre chose les caractères des deux instructions se mélangent.
Effectivement ce doit être l'effacement de la ligne puis son ré-affichage qui provoque le scintillement. Il n'est pas nécessaire d'afficher les minutes au niveau de millis(). Dans ta fonction AffichHeure(), tu peux sans doute stocker la valeur de la minute précédente et seulement si la valeur est différente alors tu affiches cette nouvelle valeur.
J'ai potassé le truc car je suis novice en la matière, je ne connaissais pas static.
j'arrive à quelque chose mais qui ne me convient pas.
Si j'utilise la solution "static" je n'ai l'affichage de l'heure qu'au changement de minute pour la durée souhaitée mais je dois attendre 1 mn pour avoir de nouveau l'heure alors que je souhaite le contraire : la date pendant une période courte et l'heure pendant beaucoup plus longtemps.