Hilfe bei der Funktion Utoa()

OP #3106531
Lesenswert?
• ▲
▼
Hallo Liebes Forum,
ich habe angefangen programmieren zu lernen mit einem kleinen myavr 
board light jedoch habe ich folgendes Problem. Ich verstehe die funktion 
utoa() nicht besser gesagt die parameter die ich ihr übergeben muss. Ich 
erhoffe mir von dieser funktion aus einem uint16_t es in ASCII zu 
konvertieren und es anschließend per UART auszugeben. Daten vom datentyp 
char lassen sich leicht per UART übertragen jedoch verstehe ich die doku 
von utoa() garnicht.
Ich hoffe ihr könnt mir helfen und erklären oder ein beispiel geben wie 
ich in utoa benutze:

laut doku:  utoa(   unsignedint  __val,char *__s,int __radix)
ich verstehe char*__s nicht und int_radix was ich hier eingeben soll.

Ich hoffe ihr könnt mir bei meinem Problem helfen.
#3106544
Lesenswert?
• ▲
▼
was verstehst du an "ich verstehe char*__s nicht" nicht?
Ein Pointer auf einen Speicherbereich vom Typ char. wo dein String 
hinsoll, den die Funktion für dich erzeugen soll.

Welches C Buch hast du und hast zumindest die ersten 2 Kapitel schon 
durchgearbeitet?
Ohne Grundlagen geht es nicht.
Gast #3106545
Lesenswert?
• ▲
▼
Irgendwo hin soll das Ergebnis ja geschrieben werden. Praktischerweise 
gibt man einen Pointer für den Zielbereich an, also char*__s .
Radix ist das Zahlenformat für die Umwandlung:
2 = binär
8 = oktal
10 =dezimal
16 = hex
Meist steht in der Doku aber auch mehr drin. Wenn das die einzige Doku 
ist, dann hast du irgendetwas falsch gemacht.
#3106546
Lesenswert?
• ▲
▼
M. B. schrieb:

> Ich hoffe ihr könnt mir helfen und erklären oder ein beispiel geben wie
> ich in utoa benutze:
>
> laut doku:  utoa(   unsignedint  __val,char *__s,int __radix)
> ich verstehe char*__s nicht und int_radix was ich hier eingeben soll.

der char ist in Wirklichkeit ein Array und dort schreibt dir utoa den 
String rein.
radix ist ganz einfach die Basis des Zahlensystems, das utoa benutzen 
soll. Bei dir wird das 10 sein, aber du könntest zb auch 16 angeben um 
von utoa eine hexadezimale Darstellung zu bekommen oder 2 für eine 
binäre Darstellung oder jede beliebige Basis, die dir gefällt.
1
  char buffer[20];
2
  uint16_t wert = 25;
3

4
  utoa( wert, buffer, 10 );   // nach Text ...
5
  uart_string( buffer );      // und Text ausgeben


Welche Doku benutzt du?
In den üblichen Dokus sind die Parameter normal genau erklärt und 
meistens finden sich auch Beispiele dazu. Wenn deine Doku das nicht hat, 
dann taugt die nichts.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.