Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Problem bei Kommastellen Kategorie: Programmierung (von Dietmar Weickert - 25.03.2004 18:46)
Als Antwort auf Re: Problem bei Kommastellen von ACU - 25.03.2004 16:24
Ich nutze:
C-Control II Station, OSOPT V3.0
Hallo!

Versuche einmal Folgendes:

U1=ports.adc(0);
U1=U1/204.6;
U2= ...

Auf diese Weise hast du auf jeden Fall Nachkommastellen in U1 und U2.

Au�erdem köntest du die Funktion str.putfloatf versuchen. Da kannst du angeben, wie viele Nach-
kommastellen du sehen möchtest. Vielleicht handelt es sich um undokumentiertes "Feature" von
putfloat, immer auf 0 Nachkommastellen genau zu sein. (Da es sich um Inline-Funktionen handelt,
kann man das nicht gut nachvollziehen.)

Zuletzt gibt es auch noch die Möglichkeit, die Formatierfunktionen von lcdext.c2 zu verwenden. Dort
gibt es die Möglichkeit, direkt aufs Display mit einer oder zwei Nachkommastellen auszugeben. Wenn
du eine andere Aufteilung zwischen Vor- und Nachkommastellen benötigst, hast du da auch die
Möglichkeit, aus dem Source einer dieser Funktionen eine neue nach deinen Bedürfnissen abzuleiten.
(Funktionieren alle nach demselben Schimmel, der Vorzeichentest könnte bei dir entfallen.)

Beste Grü�e,
Dietmar.


> > Hallo ACU
> >
> > Nehme an das die AD-Ports Zahlen im Integerbereich ausgeben. Also wird auch nur ein Integer
> > übergeben. Stell dein Programm mal so um, dann sollte es funtzen.
> >
> >
> > U1=ports.adc(0)/204.6;
> > U2=ports.adc(1)/204.6;
> >
> > GruÃ?
> > Werner
> >
> >
> >
> > > Hallo!
> > > Ich habe folgendes Problem:
> > > Meine CC2 gibt die Kommastellen nicht an. Nur die Ganzzahlen.
> > > Was mache ich falsch?
> > > Hier der Quelltext:
> > >
> > >
> > >
> > > float U1;
> > > float U2;
> > > string Ausgabe1;
> > > string Ausgabe2;
> > >
> > > thread main
> > > {
> > > lcdext.init();
> > > lcdext.clear();
> > > hwcom.setspeed(5);
> > > hwcom.init();
> > > loop
> > > {
> > >
> > > U1=(ports.adc(0)*5)/1023;
> > > U2=(ports.adc(1)*5)/1023;
> > > str.putfloat(Ausgabe1, U1);
> > > str.putfloat(Ausgabe2, U2);
> > > lcdext.line(1);
> > > lcdext.print(Ausgabe1);
> > > lcdext.line(2);
> > > lcdext.print(Ausgabe2);
> > > Ausgabe1="";
> > > Ausgabe2="";
> > > sleep 50;
> > > lcdext.clear();
> > > lcdext.line(1);
> > > }
>
>
> Danke für die Antworten!
> Ich weiÃ? nur nicht, wie das mit
> U1=ports.adc(0)/204.6;
> U2=ports.adc(1)/204.6;
> funktionieren soll (ich bekomme das gleiche Ergebniss wie vorher).
>
> Das Ziel von dem Programm ist eigentlich einfach, dass die Spannungen von den A/D Wandlern in V
> mit Kommastellen angezeigt werden!
>
> MfG ACU


    Antwort schreiben


Antworten:

Re: Problem bei Kommastellen (von ACU - 25.03.2004 19:44)