Bonjour, je dois faire un programme dans lequel je récupère des valeurs sur ma carte sd et je les manipule ensuite. Mais malheureusement, tout plante et ça ne se passe pas vraiment comme prévu. J'ai fais des test de mon coté et je pense avoir identifié la source du problème, je vous montre un code très simple qui le met en évidence :
int c = fichier.read();
Serial.write(c);
int d = fichier.read();
Serial.write(d);
c = c+d;
Serial.write(c);
Ma console m'affiche : 6 8 n.
Les premiers caractères de ma carte sont bel et bien 6 et 8 mais c'est l'addition qui plante.
Serial.write() écrit un octet ou une série d'octets, ce qui donne le résulat expliqué par dfgh.
Si on veut afficher la valeur en décimal, il faut utiliser Serial.printf() comme indiqué dans description de write
D'accord, merci pour vos reponses rapides. Et du coup, comment je fais pour que 6 + 8 soit egales a 14 ? Je dois convertir les valeurs que je récupère ?
En fait je vais faire moi même la fonction étant donné que je n'ai que 0 ou 1 en valeur (oui c'est du binaire). Merci pour votre aide, je clos ce sujet si je réussis sinon je reviendrai vers vous
Voilà, j'en ai fait une fonctionnelle pour les chiffres (rassurez vous j'ai pas pris tout ce temps à la faire ^^). C'est pas forcement très propre mais pour ceux que ça intéresse, voici le code :
int DecToInt(int c)
{
int i = 0;
int a = 48;
int ok = 0;
while(i<=9 || ok == 0)
{
if (c == a)
{
c = i;
ok = 1;
}
a++;
i++;
}
return c;
}