float->ASCII?

Gast
Hi,

sprintf(buf, "%f", floatvar);

Besser verwendest du aber um buffer overflows vorzubeugen snprintf:
snprintf(buf, sizeof(buf), "%f", floatvar);

Grüße,
Daniel
OP
Hi, hab das ganze wie oben deklariert, die floatzahl sollte 2,54 
betragen, allerdings erscheint beim Terminal dann nur ein Viereck???

char string[50];
float floatzahl;
sprintf(string, "%f", floatzahl);

Kann der Fehler daher kommen das ich die floatzahl vorher in das TXREG 
schiebe und muss man eine Zahl od Char überhaupt in das TXREG schieben 
wenn man dann den Wert mit sprintf oder putc ausgibt?
(Folgendes gilt nur für AVR-GCC - ich muss hier raten, da nichts 
angegeben wurde:)

Standardmäßig wird eine minimalistische printf-Version ohne 
Fließkomma-Unterstützung gelinkt. Die sollte aber eigentlich an den 
fraglichen Stellen Fragezeichen '?' anzeigen.

Um die volle Version zu bekommen, muss man mit diesen Optionen linken:
1
-Wl,-u,vfprintf -lprintf_flt -lm

Siehe auch 
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#ga3b98c0d17b35642c0f3e4649092b9f1

Nachtrag: TXREG klingt doch eher nach PIC o.ä. -> prüfen, ob nicht 
vielleicht auf die gleiche Art Speicher gespart wird und dies mit 
entsprechenden Optionen abgeschaltet werden muss.

Gruß
David

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.