probleme de division de char en C sur C18 (microchip pic 18F)
Discussion fermée
Affichage des résultats 1 à 5 sur 5

probleme de division de char en C sur C18 (microchip pic 18F)



  1. #1
    inviteac751535

    probleme de division de char en C sur C18 (microchip pic 18F)


    ------

    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.
    Code:
    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';
    	
    	
    	
    }
    donc avec

    Code:
    Temp_String (char * buffer,0x6C,0x01);
    je voudrais avoir +22.75 C soit une chaine {0x2B,0x32,0x32,0x2E,0x37,0x35 ,0x20,0x43,'\0'}

    voila mon probleme pouvez vous m'aider merci

    -----

  2. #2
    Jack
    Modérateur

    Re : probleme de division de char en C sur C18 (microchip pic 18F)

    Je viens de tester ton programme qui fonctionne parfaitement après les 2 corrections suivantes:
    Code:
    buffer[1]=((result/10));//+48);//ici il trouve 47 car result/10 = -1 soit 0xFF
    il faut décommenter le +48 et rétablir le parenthésage
    Code:
    Temp_String (char * buffer,0x6C,0x01);
    Que viens faire ce char * devant buffer?

    /ici il trouve 47 car result/10 = -1
    Il n'y a aucune raison car result vaut 22. result/10 vaut donc bien 2.

    PS: on en a déjà parlé, mais as-tu droit d'utiliser les float ou pas?

    A+

  3. #3
    inviteac751535

    Re : probleme de division de char en C sur C18 (microchip pic 18F)

    oui excuse moi c'est une erreur...mais malgre cela je viens de le reesaye ca ne marche toujours pas...je ne comprends pas.
    ca marche dans le sim de MPlab, ca marche dans le proteus...bref ca doit marcher mais non...et puis entre nous c'est un code hyper simple...je me demande si ca ne viens pas du compilateur qui me joue des tours...une option a la c..
    enfin voila...et puis peut etre y a til une erreur a cause des signes entre le unsigned char te le char...mais bon 10110 est un positif donc il peut etre aussi unsigned char que signed char...
    cette histoire me fait perdre mes cheveux...a rien y comprendre...mais a coup sur il ya un truc.

  4. #4
    Jack
    Modérateur

    Re : probleme de division de char en C sur C18 (microchip pic 18F)

    Tu n'as pas de debugger, de mode pas à pas avec inspection des variables?

    A+

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : probleme de division de char en C sur C18 (microchip pic 18F)

    C'est très pénible tes doublons.
    http://forums.futura-sciences.com/el...ic18f-c18.html

    Je te rappelle que c'est interdit par la charte
    Je ne peux même pas fusionner les 2 discussions, ça n'aurait aucune cohérence.

    En conséquence je ferme !

Discussions similaires

  1. Probleme de sortie logique sur PIC 18F
    Par inviteac751535 dans le forum Électronique
    Réponses: 1
    Dernier message: 06/01/2012, 00h12
  2. Programmation de microchip 18f452 par compilateur C18
    Par invitec396942c dans le forum Électronique
    Réponses: 0
    Dernier message: 03/11/2010, 20h56
  3. Probleme sim PIC 18F sur petit programme simple
    Par inviteac751535 dans le forum Électronique
    Réponses: 2
    Dernier message: 04/04/2010, 22h55
  4. Problème de transmission par UART sur PIC 18F
    Par invite2b6500ce dans le forum Électronique
    Réponses: 2
    Dernier message: 18/03/2010, 09h34
  5. Pb de types C18 sur 18F - Resultat de calcul faux
    Par invite5dd9c328 dans le forum Électronique
    Réponses: 14
    Dernier message: 12/04/2007, 22h32