Float benutzen im Mikrocontroller

OP (Firma: Keine) #2579490
Hey Leute

Arbeite zum erstenmal mit einem Mikrocontroller und frage mich nun auf 
was ich achten muss wenn ich floats oder doubles benutzen möchte bei 
einem stinknormalen PIC der 16er familie von Microchip. Spielt da die 
Rechenleistung oder der Speicher oder gar beides ne Rolle auf was achtet 
man da ?
Kostet üblicherweise deutlich Flash-Speicher, einerseits für die 
implizit aufgerufenen Berechnungsfunktionen, andererseits für 
Konvertierung bei Ausgabe wie etwa mit printf. Grad bei printf kann es 
sein, dass man irgendwas tun muss, ob dessen vollständige Version zu 
kriegen (=> Handbuch vom Compiler).
OP (Firma: Keine)
Vielen dank erstamls für die Antwort. Allerdings verstehe ich das mit 
dem Compiler nicht ganz es kann sein das eine light version des 
compilers für diese Funktion nicht ausreicht ? weil mein ziel ist es 
schlussendlich genau die printf funktion zu benutzen ?
Gast
In vielen Fällen kann man meist ganz auf das rechnen mit 
Gleitkommazahlen verzichten, z.B. in dem man kleiner Einheiten wählt 
oder Fixkomma verwendet.
Ist halt oft eine Frage, wie genau ein Ergebnis sein muss. Was willst du 
denn machen? Verwendest du Gleitkomma, ist halt u.U. ruck-zuck der Flash 
voll und die Berechnungen sin oft auch sehr langsam. Gut, das kann man 
oft verschmwerzen. Bei Flash Größen bis 8k wäre ich da sehr vorsichtig. 
Grad printf mit float bzw. double ist da sehr speicherintensiv.
OP (Firma: Keine)
Ich verwende es zur Temperaturregelung einer Lötsation wobei die Werte 
schon eine gewisse genauigkeit aufweisen sollten. In diesem Fall wähle 
ich warscheinlich besser ein MCU mit einem Speicher oberhalb von 8k 
vielen dank.
Gast
Maurin Vögeli schrieb:
> Ich verwende es zur Temperaturregelung einer Lötsation wobei die Werte
> schon eine gewisse genauigkeit aufweisen sollten.

und wo bekommst du die werte her? von einem ADC, wenn ja kommt dort aber 
ein int raus und kein float. Es gibt dafür keinen Grund erst nach float 
umzuwandeln.

speichere die Temperatur einfach als int mit 1/10 Grad wenn es denn sein 
muss.
Gast
> Ich verwende es zur Temperaturregelung einer Lötsation

Wozu in aller Welt braucht man dafür Gleitpunktzahlen ?

Andererseits ist es völlig wurscht, 1000 solcher Operationen schafft 
auch ein uC pro Sekunde, und das reicht sicherlich für die primitivste 
aller Steuerungen.
Gast
Maurin Vögeli schrieb:
> Ich verwende es zur Temperaturregelung einer Lötsation wobei

Ich denke das geht nur mit einem Compiler und Microcontroller der long 
double mit 80 Bit unterstützt.
15Bit Exponent und 64 Bit Mantisse sind knapp, aber sollten reichen.

Zum Glück sind Microcontroller heutzutage schon so weit entwickelt dass 
man diese auch Bequem in solch anspruchsvollen Anwendungen verwenden 
kann was vor ein paar Jahren noch undenkbar war.
@  Maurin Vögeli (Firma: Keine) (maurin)

>Ich verwende es zur Temperaturregelung einer Lötsation wobei die Werte
>schon eine gewisse genauigkeit aufweisen sollten. In diesem Fall wähle
>ich warscheinlich besser ein MCU mit einem Speicher oberhalb von 8k

Früher (tm) hätte es ei einfacher Komparator für 10 Cent, ähn 20 
Pfennige getan ;-)
>Ich verwende es zur Temperaturregelung einer Lötsation wobei die Werte
>schon eine gewisse genauigkeit aufweisen sollten.


Fehlerfortpflanzung und so sind eher nicht bekannt schaetze ich.
32bit floar hat 5-6 signifikante Stellen, 64bit float hat etwas mehr.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.