mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik itoa() - will noch nicht ganz


Autor: funker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich möchte über UART integer zahlen als Zeichen ausgeben, die
funktion funktioniert zwar schon, allerdings muss ich immer genau
angeben wieviele Stellen die integer Zahl hat.
Ich bekomme nach "13" immer noch "Zeichenmist" übertragen, da ja
eigentlich nur test[0,1] benötigt wird. Ich will die Funktion aber
trotzdem variabel haben, was die Stellenanzahl der Integerzahl, die
umgewandelt werden soll, betrifft.

Maine itoa():

int i;
char test[20];
itoa(13,test,10);

for(i=0; i<=20;i++){
  transmit(test[i]);
  transmit('\012');
  _delay_loop_2(50000);
}

Vielleicht kann mir jemand schreiben, was nicht so ganz richtig dran
ist.

Danke

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kauf Dir 'n gutes C-Buch.  Ich empfehle nach wie vor gern den Urvater
(oder besser: die Urväter): Kernighan/Ritchie (auch K&R genannt),
``The C programming language''.

Bitte in Englisch, zumindest die erste deutsche Übersetzung war
grauenhaft.

Strings in C werden mit '\0' terminiert, Du darfst also nur bis
dorthin ausgeben.

char *cp;

for (cp = test; *cp; cp++)
  transmit(*cp),
transmit('\n');

Ah ja, das Kapitel über Pointer & Arrays wirst Du dann wohl auch noch
studieren müssen, um das Beispiel zu verstehen. :-))

Mit itoa() hat das übrigens alles nicht das Geringste zu tun...

Autor: funker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, ihr könnt es vergessen, sizeof und es geht

Autor: funker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, Buch + Lösungsbuch liegt vor meiner Nase :-)

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann guck mal rein.  sizeof ist jedenfalls flasch.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.