mikrocontroller.net

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


Autor: Fichte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fichte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Danke Clemens

Es hat Funktioniert.



MFG: Fichte

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.