Float mit Assembler

Gast #319434
Lesenswert?
• ▲
▼
Ich habe gesehen dass die AVR Mikrocontroller den float Datentyp unter
C(++) unterstützen. Wie sieht das mit Assembler aus? Wird
Fliesskommaarithmetrik direkt vom Chip unterstützt oder "emuliert"?
Also gibt es auch Assembler-Befehle dazu? Hab in die Tabelle geschaut
aber das hilft mir auch nicht richtig weiter.
Gast #319435
Lesenswert?
• ▲
▼
nein, der AVR kann kein float in Hardware. Sowas nennt sich übrigens
Gleitkommaeinheit oder Floating Point Unit (FPU). Der Compiler setzt
das also alles in Software um. Deswegen float wenn immer geht
vermeiden!
#319436
Lesenswert?
• ▲
▼
Float kann man oft umgehen, indem man skaliert arbeitet (mit 16 oder
32-bit). Den Skalierfaktor legt man so, dass der Wertebereich möglichst
ausgenutzt wird und/oder man Schiebebefehle verwenden kann. Das nennt
man auch fixed-point.

z.B. Multiplikation mit 3,456 : *3456 / 1000   oder *3538/1024
angenähert *885/256

/1024 entspricht >>10   oder Zugriff um 1 Byte versetzt und >>2
/ 256 entspricht >>8    oder Zugriff um 1 Byte versetzt

Bitschieben um 8 kann man sich sparen, wenn man direkt auf das richtige
Byte zugreift.

Nenn mal ein Beispiel, was Du berechnen willst.

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.