uitoa optimisé pour µC 8 bits
bonjour,
j'ai fait une petite fonction qui me converti un nombre unsigned int en une chaine de caractère :
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 31 32 33 34 35 36 37
| void uitoa(unsigned int myVal, unsigned char *myStr)
{
unsigned char nbr;
if (myVal >= 10000){
nbr = (myVal/10000);
myVal -= (nbr * 10000);
*myStr = nbr + '0';
myStr++;
}
if (myVal >= 1000){
nbr = (myVal/1000);
myVal -= (nbr * 1000);
*myStr = nbr + '0';
myStr++;
}
if (myVal >= 100){
nbr = (myVal/100);
myVal -= (nbr * 100);
*myStr = nbr + '0';
myStr++;
}
if (myVal >= 10){
nbr = (myVal/10);
myVal -= (nbr * 10);
*myStr = nbr + '0';
myStr++;
}
*myStr = myVal + '0';
myStr++;
*myStr = '0';
} |
=> cette fonction est utilisée sur un µC 8 bits. Je suppose qu'il y a moyen d'optimiser ma fonction pour qu'elle soit encore plus rapide (et qu'elle prenne moins de place dans le code) : pouvez-vous m'aider ?