Code ascii d'un nombre/conversion d'un float en code ascii

cs_mortaurat Messages postés 5 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 10 août 2009 - 10 août 2009 à 15:22
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 - 10 août 2009 à 17:17
Bonjour,
je suis entrain de realiser un programme pour un microcontrolleur permettant de mesurer une temperature. Un capteur me donne une tension proportionelle à la temperature, et je recupére cette donnée grâce à un CAN.
Mon probléme vient du fait que mon driver (pour ecran lcd) à besoin du code ascii de chaque lettre composant le nombre representant ma temperature.

#include "C:\Documents and Settings\mortaurat\Bureau\CCS COMPILER PROJET\tension\tension.h"
#include <ST7920.c>

void tension() ;
void can_init() ;
void printf_temp();
float temperature ; 
void main()
{
can_init();
lcd_init();
while (1)
{
tension () ;
printf_temp();
}
}

void can_init()
{
setup_adc(adc_clock_internal);//horloge du CAN
setup_adc_ports(RA0_ANALOG); //RA0 => CAN
set_adc_channel(0); //selection de AN0
}

void tension () //mesure de la tension du capteur
{
float tension ;
tension = read_adc()*5.0/1024 ; //tension reçoit le mot fournit par le CAN
temperature = tension/0.01; //conversion tension en temperature. 10mv/°C


}

void printf_temp()
{
lcd_display("temperature: ");
lcd_display(temperature);
delay_ms(1000);
lcd_clear();
}

Voila en fait il me faudrait convertir la variable temperature en variable de type char afin d'avoir le code ascii.

Merci

3 réponses

ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
10 août 2009 à 16:05
Bonjour

char szTemperature[50];

sprintf("%f",temperature);

ou bien si tu ne veux que 2 décimales par exemple

sprintf("%.2f",temperature);
0
cs_mortaurat Messages postés 5 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 10 août 2009
10 août 2009 à 17:05
oki merci, j'ai fais:
sprintf(sztemperature, "%f",temperature ); //conversion float to char

Ca marche nikel.
0
ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
10 août 2009 à 17:17
Oups, j'avais oublié le 1er paramètre.
0
Rejoignez-nous