snprintf avr

Gast #284416
Lesenswert?
• ▲
▼
hallo,
ich habe ein problem mit der funktion snprintf.
bisher habe ich auf mein lcd nur ints ausgegeben so:
snprintf(s,6,"%u",counter) wobei counter int s car[8] ist
funktioniert einwandfrei.
nun wollte ich eine double/float variable ausgeben.
laut doku sollte es so gehen:
snprintf(s,8,"%4.2f",f) f ist float und s char[8] wie oben.
geht aber nicht. gibt ? aus oder unsinn wenn ich sprintf verwende.
habe auch alsformatstring %u und %d probiert hilft nix,
kann mir jemand mit dieser funktion helfen oder mir sagen wie ich ein
float auf dem lcd ausgeben kann?
gruss ralf
Gast #284417
Lesenswert?
• ▲
▼
Du musst noch die Float-Version von printf im Makefile aktivieren:

...
#---------------- Library Options ----------------
# Minimalistic printf version
PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min

# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt

# If this is left blank, then it will use the Standard printf version.
#PRINTF_LIB =
#PRINTF_LIB = $(PRINTF_LIB_MIN)
PRINTF_LIB = $(PRINTF_LIB_FLOAT)
...
Gast #284418
Lesenswert?
• ▲
▼
hallo,
danke für den tip,
ich habe die schon eingebunden. ändert allerdings nichts,
möglicherweise liegts an meinen lcd routinen, wobei ich keinen fehler
sehe. wenn jemand noch einne anderen tipp hat, würde ich mich freuen.
zur zeit habe ich mir damit beholfen, dass ich die funktion dtostrf
verwende. hiermit gehts:
  dtostrf(f,6,2,s);
   display_string(s);
wobei s char[10] und f double ist. 6,2 ist die precision.
ich verwende gcc.
gruss

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 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.