int to char für displayausgaben beim gcc

Gast #76353
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
Gast #76355
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
Gast #76356
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.
Gast #76357
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
Gast #76360
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren