Bonjour à tous,

Je cherche à convertir des données lues sur une carte MMC.
Mes nombres de type float sont lus et recopiés dans un tableau de caractères, qui s'affiche correctement sur le LCD.

Par contre la conversion vers un float donne obstinément 0.000, voilà un extrait
du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
// déclarations
	char  tstr[20];
	char  CommandeLecture[20];
	char  CommandeLectureUneData[20]="R 1 12 ";
	char  ChaineValeur[20];
	int   NumeroElement;
	int   AdresseElement;
	int   DepartElement;
	int   i;
	float Somme=0.0;
	float NombreLu=0.0;
 
    // La partie du code qui nous concerne 
 
    // Récupération des caractères lus on supprime les deux derniers
    // CR et LF		
	tampon_MMC[count_MMC-2]='\0';
 
    // Recopie dans ChaineValeur
	strncpy(ChaineValeur,tampon_MMC,12);
 
    // Conversion et affichage
	CharLCD_Position(0,0);
	NombreLu=atof(ChaineValeur);
	Somme=Somme+NombreLu;
	sprintf(tstr,"%10.3f",NombreLu);
	CharLCD_PrintString(tstr);
	CharLCD_Position(1,0);
	CharLCD_PrintString(ChaineValeur);
ChaineValeur s'affiche correctement, par contre nombre lu affiche toujours 0.000

Merci du coup de main.

P.G