mikrocontroller.net

Forum: Compiler & IDEs int to char für displayausgaben beim gcc


Autor: Christoph Peters (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich verwende den avrgcc compiler und suche eine funktion, die einen
integer, float oder double wert in einen ascii-string umwandelt, da ich
einen messwert auf einem Char-lcd display ausgeben möchte.

gibt es beim avrgcc eine fertige funktion die ich nutzen kann oder hat
jemand von euch schonmal jemand soetwas programmiert?

danke im voraus
christoph

Autor: RTFM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
itoa
ltoa
utoa
ultoa
dtostrf
dtostre
RTFM

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anmerkung:
zu finden sind die in der <stdlib.h>

RTFM finde ich hier unberechtigt, wo soll das denn stehen, ich habe die
Funktionen auch nur durch Zufall im Programm eines anderen gefunden.

Alex

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RTFM als ,,Absender'' finde ich auch unsinnig -- es hat keinen Sinn,
jemanden auf TFM hinzweisen und dann zu feige zu sein, seinen Namen zu
nennen.

Anyway, all das steht in der avr-libc Doku, wo sonst?  Wer WinAVR hat,
hat diese Doku auf der Platte.

Autor: Christoph Peters (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
funzt nicht so ganz:
avr-gcc -g -Wall -Os -mmcu=at90s8515     -c -o main.o main.c
main.c: In function `main':
main.c:38: warning: `string_zahl' might be used uninitialized in this
function
avr-gcc -g -Wall -Os -mmcu=at90s8515   -Wl,-Map,main.map -o main.elf
main.o
main.o: In function `main':
D:\Eigene
Dateien\microkontroller\c-programme\apo1_gerätesoftware/main.c:47:
undefined reference to `dtostre'
make: *** [main.elf] Error 1

ich habe irgendwo gelesen, dass ich noch ne datei mitlinken müsste oder
sowas, wisst ihr weiter? und vor allem was muss ich in meinem makefile
ändern?

ist der quelltext denn richtig?

  double zahl;
  char * string_zahl;
  zahl = 3.4524;
  dtostre(zahl, string_zahl, 2, 0);

danke
christoph

Autor: RTFM (aber ein anderer) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also RTFM ist meiner meinung nach gerechtfertigt.
das sind alles standard libc funktionen.
RTFM deshalb ---> http://ftp.gnu.org/savannah/files/avr-libc/doc/

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@den Herrn von Dumrath & Fassnacht:

kein Kommentar

@Christoph:

Nimm -lm mit in die Linkeroptionen rein.  Dummerweise ist dtostre() in
der math-Bibliothek drin.  Historische Gründe...

Autor: Karl Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
also in C verwende ich da immer sprintf, weil ich es da auch so
formatieren kann wie ich will:

int test = 38762;
char buffer[20]; //oder so viel man braucht
sprintf(buffer,"%09,1d",test);
/*Ausgabe auf 9 Stellen, 7 Vorkomma, 1 Nachkomma (bei int eigentlich
Blödsinn), mit führenden Nullen

mfg florian

warum heisst die programmiersprache C eigentlich C? Vielleicht weil der
Vorgänger B hieß!

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.