ITOA() gibt es nicht. C ist case sensitive.
Das Problem von itoa() ist nur, dass du keine Vornullen direkt
ausgegeben bekommst, das müsstest du dir mit der Hand dran
stricken.
> Allerdings muss ich dann mein Bitfeld von char in int abändern,
> damit es mir itoa() in einen String im Hex Zahlensystem wandeln
> kann.
Wie kommst du darauf? Hast du die Parameterübergabe von C nicht
verstanden?
Allerdings sollte der "char" wohl "unsigned char" sein, damit du
nicht in sign extension Probleme rennst, oder gleich "uint8_t"
(Definition steht in <stdint.h>, C99 genormt). Außerdem besser
utoa() benutzen oder den Wert erst nach (unsigned int) casten.
> Was ist denn Code-Overhead?
Die Codegröße, die sprintf() mit sich herumschleppt, da es eben
alles Mögliche und Unmögliche konvertieren kann. (Lediglich
Gleitkomma ist in der Standardversion weggelassen.)
Ist also einfach eine Frage, wie viel Platz du im ROM übrig hast.
sprintf() ist die Rundum-Sorglos-Version, da es alle Dinge wie
führende Nullen, Hexziffern wahlweise in Groß- oder
Kleinbuchstaben etc. pp. erledigt. Wenn ich Platz im ROM habe,
würde ich dem stets den Vorzug vor einer do-it-yourself-Lösung
geben. Denk dran, ROM sparen ist gut und schön, aber Atmel gibt
dir nichts zurück, wenn du von 16 KB ROM nur 12 KB benutzt. ;-)