Nochmal ich hab diese Funktion, vieleicht hat jemand ne andere Idee
1 | /*
|
2 | convert unsigned 32bit to string with substraction methode *** very fast***
|
3 | */
|
4 |
|
5 | void u32tostr( u32 uval, char* string)
|
6 | {
|
7 | u8 d, i, j;
|
8 | u8 zero;
|
9 |
|
10 | string[10]='\0'; // String Terminator
|
11 |
|
12 | zero = 0;
|
13 | j = 0;
|
14 | i = 9;
|
15 |
|
16 | do{
|
17 | i--;
|
18 | for( d = '0'; uval >= pgm_read_dword(&DEZI32[i]); uval -= pgm_read_dword(&DEZI32[i]) ){
|
19 | d++;
|
20 | zero = 0;
|
21 | }
|
22 | if( zero == 0 )
|
23 | string[j]= d;
|
24 | j++;
|
25 |
|
26 | }while( i );
|
27 |
|
28 | string[j]= (u8)uval + '0';
|
29 | }
|
Wenn dieser Funktion ne usigned long übergeben wird soll ein 10
stelliger String erzeugt werden, wenn ne unsigned short übergeben wird
nur ein 5 stelliger.
Bleibt mir nichts andres übrig als 2 getrennte Funktionen zu schaffen ?
mfg,
Bjoern