Je pense qu'elle te renvoie non pas l'heure mais un pointeur vers l'heure. Tu dois définir un tableau de char char heure[];dans lequel tu mettras l'heure.
Le format est expliqué ici
Comparer deux pointeurs revient à vérifier s'ils pointent vers la même adresse, alors que tu veux comparer le contenu de la mémoire à ces adresses : c'est différent.
If we want to see if two pointers point to the same memory location we can do that. Also if we want to compare the contents of the memory pointed to by two pointers we can do that too, just remeber to dereference them first.
If we have
int *a = something;
int *b = something;
which are two pointers of the same type we can:
Compare memory address:
a==b
and compare contents:
*a==*b
Mais je ne sais pas comment adapter ça à ton cas particulier... Peut-être
Ensuite tu compares heure avec la valeur retournée de rtc.getTimeStr()
if (strcmp(rtc.getTimeStr(),heure)!=0) {
Dans la variable heure tu récupère une heure au format HH:MM et rtc.getTimeStr() retourne une heure au format HH:MM:SS.
Donc la comparaison est toujours fausse.
Il faut d'abord que tu décides dans quel format tu désires récupérer l'heure.
Ensuite tu utilises le même format partout.
La variable heure a changé !
Oui, car c'est un pointeur et ce pointeur contient l'adresse de la chaîne interne utilisée par la méthode getTimeStr() pour formater l'heure.
Donc heure et rtc.getTimeStr() sont toujours équivalents.
Donc la comparaison des deux est toujours vraie.
Il faut donc bien travailler avec strcpy() et des chaînes de caractères si l'on veut faire des comparaisons.
Le format short renvoie l'heure sous la forme hh:mm si j'ai bonne mémoire. Il faut 6 caractères pas 10.
Pas grave, qui peut le plus peut le moins. rtc.getTimeStr(FORMAT_SHORT) placera de toutes façons un '\0' à la fin de la chaîne, donc après les minutes.
En laissant une taille de 9, tu es sûr que ça passe même avec un format HH:MM:SS.
Oui j'ai essayé de comprendre comment marcher ce changement mais, c'est bizarre, quoi que je fasse l'heure s'affiche en permanence avec le format_short.
Sinon, ce n'est pas grave, je vais garder l'heure avec les secondes bien que cela puisse paraître bizarre ^^