Hallo, ich habe folgendes Problem und keine Lösung dafür, die mir gefällt. Darum wollte ich fragen, wie ihr das löst. Ich programmiere zurzeit eine GUI (HMI) zur Steuerung eines µC über UART. In einem Textfeld der GUI möchte ich den Spannungswert für einen DAC einstellen und diese Werte dann an den µC schicken. Spannungsbereich 0-5V Datenwort 8Bit Auflösung(theoretisch) 0,01953125V Möchte ich nun einen Wert von 2V einstellen müsste ich theoretisch 102,4 am DAC einstellen ist also nicht möglich. Nächster erreichbarer Wert 1,9921875V (102*0,01953125V) Wie könnte man das sauber in der Eingabe des Textfeldes lösen, dass nicht 2V da steht und keine 2V eingestellt sind, sondern 1,9921875V. Meine Überlegung waren Schieberegler in der GUI oder Drobdown-Menü zum Auswählen der Spannung. Dies Möglichkeiten gefallen mir aber nicht besonderts und brauchen auch zuviel Platz auf der GUI und sind umständlich zu handhaben. Den nächst möglichen Wert zu berechnen wäre natürlich auch möglich und die eigentliche Eingabe überschreiben. Dies ist in meinen Augen die einzigste Möglichkeit. Ich wollte einfach mal von euch einen Input bekommen, wie man diese Aufgabe sonst noch (elegant/er) lösen kann, da mir nichts mehr einfällt... Es geht hier NICHT um die Auflösung der DACs, die Quantisierungsschritte bekomme ich ja auch mit 10/12/14/16 Bit. PS: Richtigen Wert erst händisch zu berechnen und dann einzutippen fällt mangels Umständlichkeit aus
wahrscheinlich würde ich das so lösen, dass ich den Benutzer seinen Wert eingeben lasse und ihm in einem zweiten Feld (Read Only) den tatsächlich einstellbaren Wert anzeige. Allerdings nicht mit 6 Nachkommastellen :-)
Ja das mit den vielen Nachkommastellen war schnell mit dem Win Calc berechnet. Die 0.2V werden vermutlich in der Praxis schon gar nicht schlecht sein. Natürlich wäre die eleganteste Möglichkeit den Wert mittels ADC wider zurückzumessen. Das kann aber die jetzige HW-Revision nicht und wird vermutlich aus Kostengründen auch nicht umgesetzt. Die Lösung mit dem theoretisch erreichbaren Wert ,sinnvoll gerundet ;), gefällt mir ganz gut. Bin mal gespannt ob jemand noch ne weiter Idee parat hat. Ist in meinen Augen auch nicht ein sehr exotisches Problem, da ja überall Quantisierungen auftreten wegen fehlender infinitesimal kleiner Auflösung, nicht nur bei DACS,PWM...
In Windows Forms gibt es z.B. das Steuerelement NumericUpDown. Du kannst einen Schritt ("Increment") konfigurieren (z.B. 0.0195) und dann mit Pfeil-Auf und -Ab in diesen Schritten hoch- und runterzählen. Wahrscheinlich ist ein solches Steuerelement auch in Deinem GUI-System (welches?) vorhanden. Vielleicht hilft's?
philipp schrieb: > Spannungsbereich 0-5V > Datenwort 8Bit > Auflösung(theoretisch) 0,01953125V 5 V / 255 = 0,0196078 V Gruß
Karl Heinz schrieb: > wahrscheinlich würde ich das so lösen, dass ich den Benutzer seinen Wert > eingeben lasse und ihm in einem zweiten Feld (Read Only) den tatsächlich > einstellbaren Wert anzeige. +1
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.