[Debutant] Problème avec tableau et atof
Bonjour à tous,
je programme actuellement un PIC 18f4520 avec le compilateur CCS.
Je souhaiterai convertir un char qui se trouve à un endroit précis d'un tableau (ex: string[4] = '7') et convertir le '7' en float (7.00).
Le manuel de CCS propose bien un atof avec cette synthaxe :
Code:
1 2 3 4 5 6 7 8
|
#include <stdlib>.h
char string[10];
float x;
strcpy(string,"123.456");
x = atof(string); |
voici mon code :
Code:
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
|
#include <18F4520.h>
#include <stdlib.h>
#include <inputc.c>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=40000000)
#use rs232(baud=9600, parity=N, xmit=PIN_C6, rcv=PIN_C7, stream=PORT1, bits=8,)
float x=1; // 1 par défaut
float total;
#define STRING_SIZE 40
void main(void);
{
while(1)
{
get_string(reception, STRING_SIZE-1);
if (reception[0]=='O')
{
total = (5*x);
printf("%f", total);
}
else if (reception[0]=='x')
{
x=atof(reception[1]); //on change la valeur de x pour afficher un resultat different ci-dessus. supposons que reception[1] = '7'.
}
}
} |
Ca compile sans problème. Après avoir lancé le programme, et envoyé depuis mon PC (rs232) la chaine "x7", la fenetre qui m'affiche les valeurs des variables m'indique que x reste toujours égale à 1. Je comprend pas.
Quelqun pourrait m'expliquer comment faire svp ?
Merci bien, en espèrant que ma problèmatique est clair :s