Bonjour,
Je réalise un projet dans lequel j'utilise un PIC18F56K20 avec le compilateur C18 sous MPLABIDE.
J'ai un problème avec la fonction "sprintf". Voila je vous explique le problème, j'utilise donc la fonction sprintf pour formater un entier dans une chaine de caractère que j'envoie ensuite à un terminal par RS232. Voici mon code :
sAddr s'incrémente correctement de 0 à 25Code:for(i=0;i<=25;i++) { sAddr=(UInt24)(i); sData=mE2p_ReadData(sAddr); sprintf(sHead1,"Data %d : %d",(UInt24)sAddr,(UInt8)sData); Delay10KTCYx(2); mRS232_WriteLine(sHead1); }
sData est un byte provenant d'une mémoire EEPROM et vaut alternativement 0xF0 et 0x0F. J'ai vérifier en pas-à-pas leur valeurs et elles sont justes. Mais dans mon Terminal j'obtiens ceci :
Data 0 : 0
Data 0 : 256
Data 0 : 512
Data 0 : 768
Data 0 : 1024
Data 0 : 1280
....
Et ceci jusqu'à la fin de la boucle...
Ce que je voudrais devrait ressembler à ça:
Data 0 : 240
Data 1 : 15
Data 2 : 240
Data 3 : 15
...
Avec tout le degug que j'ai fait, je suis persuader que le problème vient du sprintf mais je sais pas comment le résoudre...
Si quelqu'un pouvait m'aider ça serait vraiment très sympa parcque la je sèche...
-----