Fleißkommafehler beim AVR

OP #1803501
Lesenswert?
• ▲
▼
Hallo zusammen,
ich habe hier einen Mega16 mit einem Display und möchte nun die 
Analogeingänge nutzen.
Im Prinzip geht es auch.
Also ich lege eine Spannung an den ersten Eingang (0..5V, interne 
Referenz Vcc, Kondensator an Aref). Den gewandelten Wert lasse ich mir 
auf dem Display ausgeben, sowohl als Countwert als auch umgerechnet in 
Volt.
Der Countzwert geht einwandfrei, es kommen Werte zwischen 0 und 1023. 
Aber bei der Umrechnung in Spannung geht nix, auf dem Display erscheint 
nur ein Fragezeichen. Habe ich eine Bibliothek vergessen ? Derzeit binde 
ich die "libm.a" und die "libprintf_flt.a" mit ein (ach ja: AVR Studio 
und gcc).
Ich habe versucht das Ganze im Simulator zu debuggen, aber im 
Watch-Fenster zeigt er immer 0 an für beide Variablen (was ja aber auch 
sein kann,d a habe ich ja keinen echten Analogwert).

Mein Codeauszug:
    if (adc_count >= 1000)
    {
  adc_count=0;
  AdcResult = ADC_Read_Avg(0,100);
  Volt = AdcResult*5.0/1024.0;
  sprintf(buffer,"%04d - %f V", AdcResult, Volt);
  lcd_setcursor(0,1);
  lcd_string(buffer);
    }

Greets
Karlheinz
Gast #1803538
Lesenswert?
• ▲
▼
Karlheinz Druschel schrieb:
> sprintf(buffer,"%04d - %f V", AdcResult, Volt);

Hast du mal versucht, die Stellen anzugeben?
1
sprintf(buffer,"%04d - %4.3f V", AdcResult, Volt);
2
                        ^^^

Im AVRStudio kenne ich mich nicht aus, im Makefile sieht's mit den Libs 
dann so aus:

# If this is left blank, then it will use the Standard printf version.
PRINTF_LIB = $(PRINTF_LIB_FLOAT)
#PRINTF_LIB = $(PRINTF_LIB_MIN)
#PRINTF_LIB = $(PRINTF_LIB_FLOAT)

Antwort schreiben

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.

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.