Float via UART an PC senden

#3275475
Lesenswert?

Hi Leute,

ich steuer ein PWM Signal über meinen PC.
Bei jedem Verändern der Pulsweite schickt der MC die Prozentzahl der 
Pulsweite an den PC. Jetzt möchte ich aber eine extrem feine Regulierung 
haben und möchte deshalb zwei Nachkommastellen darstellen.

Geht das so ohne weiteres und wenn ja, wie?

Grüße muhh
#3275484
Lesenswert?

Einheiten sind eine Sache der Vereinbarung zwischen beiden Seiten. Wenn 
du in deiner Stammkneipe "ein Bier" bestellst, weiß der Wirt, dass du 
ein Maß willst, weil du aus Bayern bist. Und dein Kumpel aus Schläfrig 
Holzbein bekommt bei gleicher Bestellung einen Finkennapf.

Gleiche Lösung bei deinem Problem: Übergib nicht Prozente als Einheit 
sondern Zehntausendstel. Damit bleibt es eine Festkommazahl und ist in 
16 Bit darstellbar.
Gast #3275486
Lesenswert?

Na ob das wirklich eine Auswirkung hat wenn du noch 2 Kommastellen 
mitnimmst.

Ich hab da so meine Zweifel

Aber um es einfach zu machen.
Multipliziere deine % Zahl mit 100 ( besser mit 128) und übertrage als 
Ganzzahl.

Wenn du wirklich mit Float arbeiten willst, machst du dort eine Division 
durch 100 ( oder einfach um ein paar Bits schieben wenn du die 128 
verwendest)
Gast #3275520
Lesenswert?

Georg G. schrieb:
> Gleiche Lösung bei deinem Problem: Übergib nicht Prozente als Einheit
> sondern Zehntausendstel.

Der µC hat wahrscheinlich sowieso nichst besseres zu tun, als von 65536 
auf 10000 umzunormieren, weil die Arbeit sowieso die Hardware macht und 
er sonst nur in der Warteschleife rumhängt oder schläft.
Gast #3275582
Lesenswert?

Ich wuerd erst mal testen, welche Ausfloesung das Servo denn bringt. Und 
zwar durch Anfahren von beiden Seiten. Dh, man befestigt einen kleinen 
Spiegel an der Achse, und leuchtet mit einem Laser drauf. Den Punkt an 
der 5m entfernen Wand markiert man. Dann macht man ein paar 
Postions-Schritte nach links und zeichnet alle Punkte auf. Dann ein paar 
Schritte nach rechts. Die kleinsten Schritte sind so sichtbar. Dann 
N-Schritte nach links und zurueck. Was ist die Abweichung? Dann 
N-Schritte nach rechts und zurueck. wie gross ist die abweichung. Ich 
hab das mal mit ein paar Servos gemacht und kam auf eine Aufloesung von 
0.5 oder 2 Grad. Ich kann mich grad nicht erinnern. Der Wert kann auch 
unterschiedlich nach Hersteller und Typ sein.

Float waere total uebersteuert, denn 5 Stellen kann das Servo eh nicht 
aufloesen. Allenfalls 3 Stellen, entsprechend Promillen. Ich wuerd 
einfach 2 Byte uebertragen.
(Firma: fritzler-avr.de) #3275595
Lesenswert?

Was will man da mit float?!?!?
Das PWM Register wird ja warscheinlich nur Integerwerte annehmen.
Also diese 1zu1 übern UART schubsen.

Ansonsten eben die üblichen verdächtigen float zu String und String zu 
float Funktionen benutzen.

Im Anhang sogar was aufm Silbertablett für Integerübertragung.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren