-
-
Erfahrener Benutzer
Robotik Visionär
Die Berechnungen mit Fließkommazahlen brauchen relativ viel Platz. Man kann da schon noch einiges zusammenfassen, allerdings wird das Programm dann auch etwas unübersichtlicher. Die Umrechnung von AD-Wert nach Volumen wäre z.B. mit nur einer Multiplication möglich indem man die Konstanten vorab zusammenfaßt.
Es sollte auch möglich sein ganz ohne fließkomma Division auszukommen. z.B. sollte man statt "Prozent = Volumen / 40" besser "Prozent = Volumen *0.025" schreiben.
Edit:
Auf Double sollte man mit der Testversion wohl verzichten. Vor allem nicht beides (single und double nutzen). Irgendwann ist halt die Grenze der Testversion erreicht.
Zum Mittelen:
Der AD wandler liefert immer nur einen Wert für einen Zeitpunkt. Im Idealfall sollte vor den AD wandler ein analoger Filter sein (Anti aliasing Filter). Dadurch werden die hohen Frequenzen Unterdrückt und der AD Wandler kriegt nur noch ein so langsames Signal, dass er das auch richtig erfassen kann. Für ein langsames Eingangssignal wie die Füllstandsmessung werden dann mehrere Menge Werte Zusammengefaßt. Sinnvoll ist es dabei wenigstens über 20 ms (= 1 Periode von 50Hz) zu mitteln.
Für eine Effektive umsetzung sollte man mit 32 Bit integers (bzw. besser noch mit der vorzeichenlosen Version ?) arbeiten. Bei einer festen zahl an AD werten braicht man danach micht teilen, sondern kann die gleich mit der Summe Weiterarbeiten. Nur die Konstante zum Umrechenen ändert sich dann. Am einchsten ist es ohne Warten, denn eine Schleife mit mehr durchläufen braucht ja auch nicht mehr Code. Wenn man will den AD mit der Mittelung im Hintergrund laufen lassen will, könnte man den Interrupts vom AD nutzen und den AD durchlaufen lassen. Das letzte Ergebnis könnte man dann jeweils aus einer Variable abrufen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen