Forum: PC-Programmierung Eingabe Textfeld


von philipp (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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 :-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

philipp schrieb:
> Auflösung(theoretisch) 0,01953125V

Also praktisch 0.02V. Wenn überhaupt.

von philipp (Gast)


Lesenswert?

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...

von Severino R. (severino)


Lesenswert?

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?

von Joachim (Gast)


Lesenswert?

philipp schrieb:

> Spannungsbereich 0-5V
> Datenwort 8Bit
> Auflösung(theoretisch) 0,01953125V

5 V / 255 = 0,0196078 V

Gruß

von bluppdidupp (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.