Aus der Doku:
Die Funktion itoa() macht aus dem integer ja einen String, d.h. in C ein Array aus chars. Ein char ist 8 bit groß, du brauchst also für jede Stelle 8 bits.you need to supply a buffer with a minimal length of 8 * sizeof (int) + 1 characters
Bei Radix 10 sind das dann 3 Stellen zu je 8 bits macht 24 bits insgesamt.
Bei einer Binärzahl wären das sogar 8 Stellen (Bit 7 ist das signed bit) + 1 Stelle für das eventuelle negative Vorzeichen zu je 8 bit macht also 64 bits die über den USART rausgeschoben werden.
EDIT: Warum möchtest du die Zahl binär ausgeben? Benutzt du es für ein User Interface (deshalb wird vorher 'hex' bzw 'bin' ausgegeben?) oder ist das eher was für eine Kommunikation unter zwei Controllern?
Lesezeichen