mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Datentyp double Atmega8 mit AVR-gcc in AVR Studio


Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Weiß eigentlich jemand wie der Datentyp double im AVR-Studio 4.13 genau 
aufgebaut ist wenn man einen Atmega8 verwendet (avr-gcc)?
Mich würde interessieren auf wieviele Kommastellen genau er rechnet und 
wie diese Variablen bitweise aufgebaut sind.

Autor: Michael Korb (michaelkorb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim 8Bit-Prozessor ist es ein 4Byte double (8Bit Exponent und 23Bit 
Mantisse). Mehr dazu z.B.: unter 
http://de.wikipedia.org/wiki/Gleitkommazahl

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Korb wrote:
> Beim 8Bit-Prozessor ist es ein 4Byte double (8Bit Exponent und 23Bit
> Mantisse).
Hat nix mit dem Prozessor zu tun, sondern mit dem Compiler. Viele 
Embedded-C-Compiler für 8-Bit-Plattformen unterstützen keine 
64-Bit-Gleitkommazahlen (und double hat im Regelfall 64 Bit, also 8 
Bytes, und damit doppelt so viel {"double precision"} wie float ), 
weshalb double dort genauso behandelt wird wie float , nämlich als 
32-Bit-Wert.

> Weiß eigentlich jemand wie der Datentyp double im AVR-Studio 4.13 genau
> aufgebaut ist
AVRStudio kann mit dem Datentyp double und mit anderen Datentypen 
nichts anfangen. Das kann nur ein C-Compiler, in diesem Fall vermutlich 
der WINAVR (AVR-GCC), der sich in AVRStudio als Plugin einbauen lässt...

Autor: Michael Korb (michaelkorb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johannes M. wrote:
> Hat nix mit dem Prozessor zu tun, sondern mit dem Compiler.
Hast recht, ich hatte das schon auf den angegebenen avr-gcc bezogen. Ich 
wollte damit sagen, das die kostenlosen Compiler bei 16/32Bit ARMs 8Byte 
double können.
Ich nehme an da ist der win-avr gemeint, der im Studio intergriert wird.
Die großen Combiler (IAR, Cross) können natürlich 8Byte double. Aber das 
Problem hatte ich ja damals auch schon.

Autor: Anna-zaira Engeln (nanalisa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Korb wrote:
> Beim 8Bit-Prozessor ist es ein 4Byte double (8Bit Exponent und 23Bit
> Mantisse).

Hallo!

Und wie ist es mit dem Vorzeichen? Wahrscheinlich kommt das noch dazu?

1  Bit Vorzeichen
8  Bit Exponent
23 Bit Mantisse

Ist das so richtig?

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig. Macht im Übrigen am Ende bei einer Stelle vor dem Komma ca. 4-5 
Stellen hinter dem Komma, die stimmen, der Rest ist Phantasie. Nunja, 
für die Daten vom eingebauten ADC reichts.

Gruß
Jadeclaw.

(PS: Hinweis: der Originalbeitrag ist mehr als 6 Monate alt.)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.