Hi,

Zitat von
pebisoft
oder gibt es in winavr-c eine routine, die ich nicht kenne für diese problem.
Auch selberschreiben ist in diesem Fall nicht schwer. Hier mal eine Routine von Peter Dannegger aus dem Mikrocontroller.net Forum:
Code:
void uart_put_int( uint16_t val )
{
uint16_t TEST[] = { 10, 100, 1000, 10000 };
uint8_t d, i;
uint8_t zero;
uint16_t uval = val;
zero = 1;
i = 4;
do {
i--;
for( d = '0'; uval >= TEST[i]; uval -= TEST[i] ) {
d++;
zero = 0;
}
if( zero == 0 )
uart_putc( d );
} while( i );
uart_putc( (uint8_t) uval + '0' );
}
oder eine von mir die immer eine bestimmte Anzahl von Zeichen ausgibt ( das mit den Füllbytes kann man auch rausschmeißen wenn man es nicht benötigt ):
Code:
void uart_put_dec(uint16_t wert, uint8_t anzahl, char fuell)
{
uint8_t i, s[5];
/* Zahl in String umwandeln */
for (i = 0; i < anzahl; i++)
{
s[anzahl - i - 1] = '0' + (wert % 10);
wert /= 10;
}
/* Füllbyte ersetzten */
for (i=0; i<(anzahl - 1); i++)
{
if (s[i] == '0')
s[i] = fuell;
else
break;
}
/* String ausgeben */
for (i=0; i<anzahl; i++)
uart_putc(s[i]);
}
MfG Kjion
Lesezeichen