Je dois utiliser des dates qui contient de quelque seconde à plusieurs heures en milliseconde
Si je fais les déclaration suivantes
unsigned long a = 32000;
unsigned long b = 32*1000;
unsigned long d = 33 000;
unsigned long e = 33*1000;
void setup() {
Serial.begin(9600);
Serial.println(a);
Serial.println(b);
}
Quand j’affiche « a » ou « b » j’ai bien la valeur 32000 mais quand j’affiche « d » j’ai 33000 et « e » 4294934760 valeur incohérente.
On dirait que le calcul est géré pont un int alors que j’ai défini un unsigned long
C’est embêtant var je voudrais définir des valeurs par calcul : par exemple quand je veux définir un paramètre de 5 min en milliseconde je voudrais le définir comme cela dans mon code
unsigned long a = 5x60x1000;
Met ton code entre balises avec la touche </>, car on voit des caractères en italique, c'est bizarre et ça cache peut-être le problème.
Bon, je l'ai fait pour toi...
Si tu changes *1000 en *1000ul, ça devrait aller. Le problème vient que tu ne dis pas que tes valeurs sont en longavant le calcul, donc il les prend pour des int, fait le calcul qui dépasse 32767, donc devient une autre valeur, puis les caste en unsigned long. Mais c'est trop tard, le mal est déjà fait...