unsigned long int ist_frequenz;
float ist_frequ_tmp;
ist_frequenz=freq_overfl_cnt_tmp*(unsigned long int)0xFFFF;
ist_frequenz+= (unsigned long int)TCNT1_tmp-20;
ist_frequ_tmp=(float)ist_frequenz / (float)8000000;
ist_frequ_tmp = 1/ist_frequ_tmp;
>>ist_frequenz=ist_frequ_tmp*32;<<
--------
Hallo,
ich habe oben geposteten Code. Sobald die mit ">>...<<" markierte Zeile
eingefügt wird, wird der Code plötzlich 4-fach so groß wie zuvor -> also
hoher Rechenaufwand für die Berechnung.
Es bringt auch nichts mit casten etc. deshalb denke ich dass irgendwo
ein grundsätzlicher Fehler vorliegt, aber WO?
Für nen Tipp wäre ich dankbar!
Gast wrote: > Es bringt auch nichts mit casten etc. deshalb denke ich dass irgendwo > ein grundsätzlicher Fehler vorliegt, aber WO? > Für nen Tipp wäre ich dankbar! Dein absolut grundsätzlicher Fehler: Floats. Floats sind so ein Spielzeug, das viele Spielkinder anzieht und dass viele auf Biegen und Brechen benutzen wollen. Eigentlich braucht kein Schwein Fließkommazahlen, selbst moderne Sternwarten kommen komplett ohne aus.
Ja, das ist mir klar. Grundsätzlich versuche ich floats auch zu umgehen, aber hier häng ich grad irgendwie und mir fällt keine nicht-float-Lösung ein....
Wie denn? Und: Warum gehts nicht ohne Float? Alles mal 1000 nehmen und nacher das Komma wieder setzen...?
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.