C++Guns – RoboBlog

19.02.2009

itoa uitoa für AVRs

Filed under: Allgemein — Tags: — Thomas @ 23:02

Wer kennt das nicht, man möchte eine Zahl über USART ausgeben, scheut sich aber vor solche dicken Funktionen wie fprintf. Man höhrt dann öfters von einer itoa Funktion, die es aber nicht per default gibt. Hier ist meine uitoa Funktion, welche die Zahl gleich raussendet. Inspiriert vom midgard Projekt von buha.info . Die USARTtransmis* Funktionen sind von http://jump.to/fleury .

void USARTuitoa(uint16_t n)
{
// max. 5 stellige zahlen + die abschliessende 0 im string
unsigned char s[6];
// arrays fangen bei 0 an zu zählen. pos zeigt auf das letzte feld
register uint8_t pos = 5;

// den string mit einer 0 terminieren
s[pos] = (char) 0;

do {
uint8_t rest = n % 10;
n = (n - rest) / 10;

s[- -pos] = rest + '0';
} while(n && pos);

USARTtransmitString((unsigned char *) (s + pos));
}

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress