www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ascii to int


Autor: Simon R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammmen,

kleine Infos vorweg:

ich möchte einen ATMega8 im AVR-Studio in C programmieren.

Dabei soll eine variable ab 0 hochgezählt und auf einem LC-Display 
angezeigt werden. Allerdings gibt er mir ab der Zahl 9 nur die 
ASCII-Symbole aus (7,8,9,:,;,< usw.). Aber ich möchte, dass er mir die 
Zahlen bis 200 im Int-Format ausgibt.

Kennt jemand vielleicht eine Lösung dazu (außer printf)?
Ich habe im Tutorial etwas über die atoi - Funktion gelesen...aber so 
richtig schlau bin ich daraus nicht geworden.

Vielen Dank im voraus.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Simon R. schrieb:

> Ich habe im Tutorial etwas über die atoi - Funktion gelesen...

atoi wäre auch die falsche Funktion.
Du brauchst die Funktion in der Gegenrichtung.

http://www.mikrocontroller.net/articles/FAQ#Wie_ka...

Autor: Simon R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber warum? Das verstehe ich nicht...
Ich habe eine ascii-Darstellung...möchte sie aber als int ausgeben und 
nicht umgekehrt.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Dabei soll eine variable ab 0 hochgezählt und auf einem LC-Display
>> angezeigt werden.
Du hast eine Variable = integer
Du willst ein Zeichen = ASCI
Also von "integer to ascii"

Autor: Simon R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aah..ok. Ich werde es ausprobieren...vielen Dank für die schnelle 
Antwort. :-)

Autor: Stefan P. (form)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für Zahlen von 0-9 addiere einfach "48" dazu. 48 = Ascii "0", usw.
Für Zahlen über 10 müsstest Du dann auswerten, und jede einzeln 
behandeln... Warum kein printf oder sprintf ?

Autor: Stephan V. (orca)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan P. schrieb:
> Warum kein printf oder sprintf ?

weil printf unmengen an Speicher braucht, der für eine einfache itoa 
Konvertierung reine Verschwendung ist.

Autor: Martin Vogel (oldmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Auch wenn's vieleicht mit Kanonen auf Spatzen gleicht, für jede Stelle 
eine Ziffer 48 - 57 hochzählen mit entsprechendem Überlauf. Soll der 
Gesamtwert Integer erhalten bleiben, dann halt noch eine weitere 
Variable für den Integerwert. Die Stellen kann ich dann einfach durch 
Abfrage auf größer 57 wieder auf 48 setzen und habe damit ASCII. Dürfte 
weniger Aufwand sein, als eine ASCII - Wandlung aus einer Integer 
heraus.
Gruß oldmax

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.