Bonjour, me revoici de nouveau coincé !
J'utilse Rflink Small sur un Nano. j'ai épuré le code au maximum de mes possibilités.
mais j'ai du mal avec sprintf.
Les variables sont:
j'ai suivit cette page ICI
et j'obtiens bien ma sortie en Décimale Oregon;ID=1A04;WINDIR=0002;WINSPHexa=006e;WINSPM=0110;AWINSPHexa=0002;AWINSPM=0002;BAT=OK
006e-->0110.
0002-->0002.
-Mais je n'arrive pas dans sprintf a diviser par 100 le résultat (en M/s )et a le multiplier par 3.6 pour passer en (Km/H.)
Alain
Si vous avez écrit wspeed * 3.6 / 100 Vous avez promu le résultat du calcul en nombre réel (à virgule). Si vous voulez vraiment un entier il faut le reconvertir et écrire (int) (wspeed * 3.6 / 100)
Bonsoir.
He bien non!! , j'avais pas pensé. Focalisé sur Sprintf
Maintenant comme conseillé ci dessus ça marche.
Merci beaucoup
j'en profite pour demander, toujours dans Rflink si j'utilise la bonne méthode pour afficher la direction du vent en économisant l'espace mémoire du Nano.
Dans la variable wdir
sprintf(pbuffer, ";WINDIR=%04d;", wdir);
je récupère un nombre de 0 a 15 qui représente 16 positions possible de mon indicateur de direction du vent.
Je les utilisent comme ceci: (je reste un grand débutant)
Les Serial.print c'est pour la "mise au point" au final c'est une structure qui sera utilisée, appelée par IC2
switch (wdir){
case 0: Serial.print(F(";N;" )); break;
case 1: Serial.print(F(";NNE;" )); break;
case 2: Serial.print(F(";NE;" )); break;
case 3: Serial.print(F(";NEE;" )); break;
case 4: Serial.print(F(";E;" )); break;
case 5: Serial.print(F(";SEEE;")); break;
case 6: Serial.print(F(";SE;" )); break;
case 7: Serial.print(F(";SSE;" )); break;
case 8: Serial.print(F(";S;" )); break;
case 9: Serial.print(F(";SSW;" )); break;
case 10: Serial.print(F(";SW;" )); break;
case 11: Serial.print(F(";SWW;" )); break;
case 12: Serial.print(F(";W;" )); break;
case 13: Serial.print(F(";NWW;" )); break;
case 14: Serial.print(F(";NW;" )); break;
case 15: Serial.print(F(";NNW;" )); break;
}
Oui ça met le texte en mémoire flash. Vous pourriez aussi utiliser PROGMEM et faire un tableau à 15 entrées (toutes de la même taille) et utiliser votre variable comme index plutôt que de faire un switch