Forum: Mikrocontroller und Digitale Elektronik char in int Umwandeln "Codevision"


von Fichte (Gast)


Lesenswert?

Hay @all


Ich habe ein Problem ich bekomme werde über mein UART diese möchte ich
jetzt rechnen zbs.

Der Controller bekommt 0x19

nun lass ich mir dies so auf meinen LCD ausgeben


char text[16], k;

      k=getchar();
      sprintf(text,"%03u",k);
      lcd_gotoxy(0,1);
      lcd_puts(text);

"ausgabe ist 25."

nun möchte ich die eingegangene zahl mal 12,5 Rechnen, wie mach ich
das. mein erster versuch war so

      k=getchar();
      k=k*12.5;
      sprintf(text,"%03u",k);
      lcd_gotoxy(0,1);
      lcd_puts(text);
"ausgabe ist 56."

aber das ist nicht richtig, den es gibt ja nur 255 Zeichen.
Also wie Rechne ich das, das er mir die Zahlen richtig Ausgibt?


MFG: Fichte

von Clemens (Gast)


Lesenswert?

Die einfachste Lösung ist, du rechnest alles in float, braucht aber viel
Rechenleistung und viel Speicher.

char text[16],
float k;

       k=(float)getchar();
      k=k*12.5;
      ftoa(k,2,text);  //2 ist die Anzahl der Kommastellen
      lcd_gotoxy(0,1);
      lcd_puts(text);

Grüße Clemens

von Fichte (Gast)


Lesenswert?

Danke Danke Clemens

Es hat Funktioniert.



MFG: Fichte

von crazy horse (Gast)


Lesenswert?

Hm, float für so eine einfache Rechnung?

unsigned int Ergebnis;
Ergebnis=(int)getchar()*125;  //Zuweisung zu einer Int-Variablen
Ausgabe (Ergebnis/10);       //Ausgabe wie auch immer, Vorkomma
Ausgabe (',');
Ausgabe (Ergebnis%10);       //Nachkomma

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.