bonjour,
je galere vraiment en ce moment pour convertir une valeur en ascii.
pour cela j'ai cree une petite fonction simple qui me decortique caractere par caractere.
exemple depuis 2 octes d'une sonde de temperature, j'effectue le traitement de base pour avoir une partie virgules et une partie entiere.Jusque la tout va bien.En revanche lorsque j'arrive au traitement rien ne va...il me trouve des signed char negatif..enfin voila le code.
donc avecCode:void Temp_String (char * buffer,unsigned char byteL,unsigned char byteH) { unsigned int virgule; unsigned char result,result1; //la virgule virgule =(byteL&0x0F); virgule *=625; result=(byteL>>4); result1=((byteH&0x07)<<4); result|=result1; //*****************jusqu'ici tout va bien************* buffer[0]=0x2B; buffer[1]=((result/10));//+48);//ici il trouve 47 car result/10 = -1 soit 0xFF buffer[2]=((result-((buffer[1]-48)*10))+48); buffer[3]=0x2E; buffer[4]=((virgule /1000)+48); buffer[5]=(((virgule -((buffer[4]-48)*1000))/100)+48); buffer[6]=0x20; buffer[7]=0x43; buffer[8]='\0'; }
je voudrais avoir +22.75 C soit une chaine {0x2B,0x32,0x32,0x2E,0x37,0x35 ,0x20,0x43,'\0'}Code:Temp_String (char * buffer,0x6C,0x01);
voila mon probleme pouvez vous m'aider merci
-----