bonjour,

j'ai fait une petite fonction qui me converti un nombre unsigned int en une chaine de caractère :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?