Kleines Problem bei Spannungsanzeige mit amd-65 C-Firmware

Hier könnt ihr Diskussionen über die Software des Labornetzteiles des c't-Lab führen.
Antworten
Benutzeravatar
HomerNo1
Beiträge: 1
Registriert: 06.04.2008, 15:13

Kleines Problem bei Spannungsanzeige mit amd-65 C-Firmware

Beitrag von HomerNo1 » 06.04.2008, 15:42

Hallo zusammen,

erst mal vielen Dank an amd-65 für die C portierung der Firmware.

Wenn man die Sollspannung genau auf 10.00V einstellt, dann zeigt das Display manchmal 10.000 an, das V verschwindet dann.
Das Problem scheint in der Funktion VoltageToString in dcg-panel.c zu liegen.
Wenn man if(u < 10) in if(u <= 9.999) ändert, ist das Problem verschwunden.

Allerdings hat das nun zur Folge, daß man nicht mehr 9.999V einstellen kann, der Sollwert springt nun von 9.998 auf 10.00 und umgekehrt.
Wenn ich die o.a. Änderung rückgängig mache, kann ich auch wieder 9.999V einstellen.
Den Zusammenhang kann ich nicht nachvollziehen.

Das ganze ist natürlich nicht wirklich ein Problem, war mir halt nur aufgefallen.

Gruß
Homer

amd-65
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 130
Registriert: 29.11.2007, 16:28

Re: Kleines Problem bei Spannungsanzeige mit amd-65 C-Firmwa

Beitrag von amd-65 » 07.04.2008, 19:27

HomerNo1 hat geschrieben:Hallo zusammen,
Wenn man die Sollspannung genau auf 10.00V einstellt, dann zeigt das Display manchmal 10.000 an, das V verschwindet dann.
Das Problem scheint in der Funktion VoltageToString in dcg-panel.c zu liegen.
Wenn man if(u < 10) in if(u <= 9.999) ändert, ist das Problem verschwunden.
Es sieht so aus, daß printf die Zahl entsprechend den vorgegebenen Dezimalstellen rundet. Aus 9.9997 wird bei einem Formatstring von "%.3f" dann 10.000. Man müßte dann die Abfrage von u < 10 in u < 9.9995 ändern. Die letzte Stelle so, wie printf wirklich rundet.

Gruß
amd-65

Antworten