Bonjour je rencontre un souci avec ma RTC:
en voulant faire un déclenchement a heur précise , je me suis aperçu que mon programme bugger a 9H et 6min
je m'explique : je voulait que le déclenchement se produise a la seconde prés par rapport a une heur fix
heure de consigne a 7H35min 20sec
et mon programme planter des que je considérer dans la vérification, les secondes!
j'ai donc procéder a l’addition suivante t=heur3600+min60+sec , et j'ai pus constater qu'a 9H6min et quelque seconde le résultat passer
de environ 32767 a 4294934520 et bien sur le problème provoque un bug dans mes déclenchement et arrêt.
quelqu'un a t'il déjà rencontrer ce problème ?
car la je bloque vraiment j'ai aucune piste pour chercher la source de l'erreur!
merci d'avance
Heloderma-kris:
Bonjour je rencontre un souci avec ma RTC:
en voulant faire un déclenchement a heur précise , je me suis aperçu que mon programme bugger a 9H et 6min
je m'explique : je voulait que le déclenchement se produise a la seconde prés par rapport a une heur fix
heure de consigne a 7H35min 20sec
et mon programme planter des que je considérer dans la vérification, les secondes!
j'ai donc procéder a l’addition suivante t=heur3600+min60+sec , et j'ai pus constater qu'a 9H6min et quelque seconde le résultat passer
de environ 32767 a 4294934520 et bien sur le problème provoque un bug dans mes déclenchement et arrêt.
quelqu'un a t'il déjà rencontrer ce problème ?
car la je bloque vraiment j'ai aucune piste pour chercher la source de l'erreur!
merci d'avance
bonjour
ça ressemble à un debordement, le résultat de l'addition est définit comment , quel type ?
mets le code ici
32767 c'est la limite d'un int.
Pour faire des calcul de temps il faut utiliser des long.
On a abordé le sujet la semaine passée voir là : http://arduino.cc/forum/index.php/topic,96988.0.html
j'y avais bien penser mais il semble que sa ne viene pas directement de mon code enfin le voici :
unsigned long temps(){
unsigned long resultat;
rtc.get(&sec, &min, &hour, &day, &month, &year);
resultat=((hour*3600)+(min*60)+sec);
return resultat;
}
Edit de Jean-François : entre les balises code la prochaine fois 
La réponse était dans le lien que j'ai donné
unsigned long temps(){
unsigned long resultat;
rtc.get(&sec, &min, &hour, &day, &month, &year);
resultat=((hour*3600L)+(min*60L)+sec);
return resultat;
}
arf zut j'avais j'avais oublier les" L" a la fin des multiplicateur c'est effectivement de là que venais le probléme c'est fou pour un tout pti "L" ce que sa peut faire le bordel :0
en tout cas merci pour ton aide fdufnews une nouvelle foi!
et merci Jean François pour la modif du poste !