Hallo,
ich habe mal wieder ziemlich viel Zeit damit verbracht etwas
herauszufinden was ich so nicht erwartet hatte.
Ich wollte einfach einen Wert in einen prozentualen Anteil umrechnen und
bin dabei auf folgendes gestoßen.
1 | unsigned int PWMresolution // Aufloesung des PWM Moduls 10 Bit
|
2 | unsigned int dutycycle // Aktueller Wert 930
|
3 | float PCofDC // Prozentangabe des +DutyCycle
|
4 |
|
5 | PCofDC = dutycycle * 100 / PWMresolution
|
Die Werte oben sind Beispielwerte. Mit der Formel bekomme ich immer
falsche Werte heraus. Erst wenn ich die Formel dahingehend abändere das
ich anstatt 100 als Ganzzahl 100.0 als Fließkommazahl eintrage sind die
Werte in der Ergebnis Variablen richtig. Ich hab die doch als float
deklariert ....
Ich bin jetzt nicht der C Experte, liege ich da falsch und habe einen
Denkfehler oder macht der Compiler etwas was ich nicht erwarten müsste?
Das hat mich jetzt mal locker 6 Stunden gekostet und würde gern wissen
ob das ein Denkfehler bei mir ist, vielleicht kann jemand dazu etwas
schreiben.
Vielen Dank und Gruß, Georg