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.
Beim 8Bit-Prozessor ist es ein 4Byte double (8Bit Exponent und 23Bit Mantisse). Mehr dazu z.B.: unter http://de.wikipedia.org/wiki/Gleitkommazahl
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...
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.
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?
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.)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.