Float berechnungen und Ausgabe auf Atmel128

OP #328386
Lesenswert?
• ▲
▼
Hallo,
ich bin seit einigen Tagen ratlos...
Ich habe einen Atmel128 und den ICC AVR Compiler.
Da ich einen PT100 an  einem ADC hängen habe, müsste ich mit floating
point Zahlen rechnen. Integer Berechnungen und Ausgabe mit fprintf und
printf klappen. Nur eben nicht float.

Der Code ist im Moment:
...
if (strncmp("te", buff, got) == 0) {
    float temp = 0;

   ADCSetup();                                //vorbereiten des ADCs
   fprintf(stream, "Read Temperature...\r\n");

  for(i = 0; i<11; i++) {
      Result = (float)ADConvert(1,1);         // Ch. 1 mit Divfaktor 1
                                              // liefert Int
      fprintf(stream, "The ADC Result: %i \r\n", Result);
    temp  = (float)temp + ((float)Result * (float)2.5600 )/(float)1024
}

temp = (float)temp/(float)10.0000;

fprintf(stream, "The voltage on ADC: %.6f [V]\r\n", temp);


.....
}



Im Compiler (ICC AVR Version 6.28) hab ich schon die Option "Printf
Version - float" gewählt und meine Return Stack Size auf 128 gesetzt.

Versuchshalber hab ich extra noch #include "float.h" gesetzt. Aber
leider ohne Erfolg. Auch wenn ich eine float Variable fest definier,
also float var = 1.23; und dann mit printf("...%f",var); ausgebe
klappts nicht.

Wäre super wenn jemand das gleiche Problem hatte und gelöst hat.

Grüße Thomas
Gast #328387
Lesenswert?
• ▲
▼
versuchs mal mit
#include <math.h>

Ich würde trotzdem versuchen, ohne float auszukommen, nämlich mit
fixed-point:
temp = temp + adc*256;

fprintf(stream, "The voltage on ADC: %d.%03d [V]\r\n",
temp/100,temp%100);

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.