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


von Christoph Peters (Gast)


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

von RTFM (Gast)


Lesenswert?

itoa
ltoa
utoa
ultoa
dtostrf
dtostre
RTFM

von Alex (Gast)


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

von Jörg Wunsch (Gast)


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.

von Christoph Peters (Gast)


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

von RTFM (aber ein anderer) (Gast)


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/

von Jörg Wunsch (Gast)


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...

von Karl Florian (Gast)


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ß!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.