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.
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_kann_ich_Zahlen_auf_LCD.2FUART_ausgeben.3F
Aber warum? Das verstehe ich nicht... Ich habe eine ascii-Darstellung...möchte sie aber als int ausgeben und nicht umgekehrt.
>> 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"
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 ?
Stefan P. schrieb:
> Warum kein printf oder sprintf ?
weil printf unmengen an Speicher braucht, der für eine einfache itoa
Konvertierung reine Verschwendung ist.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.