Float benutzen im Mikrocontroller

OP (Firma: Keine) #2579490
Lesenswert?

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 ?
#2579491
Lesenswert?

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) #2579497
Lesenswert?

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 #2579514
Lesenswert?

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.
Gast #2579524
Lesenswert?

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 #2579530
Lesenswert?

> 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 #2579578
Lesenswert?

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.
#2579638
Lesenswert?

@  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 ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren