Forum: Mikrocontroller und Digitale Elektronik Umwandelung char/string zu einer Zahl


von Chris (Gast)


Lesenswert?

Hallo!

Ich kann ohne Probleme mit dem 90S8535 einen Text auf das Display T6963
ausgeben.
Jetzt will ich aber eine Zahl ausgeben. Wie mache ich das?
Wenn ich einen char Wert ausgebe, dann bekomme ich nur ein Zeichen
(ASCII) auf dem DIsplay zu sehen.

void lcd_write_char(unsigned char data, unsigned char x,unsigned char
y,  )
{
 unsigned int address;
 address= y * 22 + x + 0x1000;
 out(0x24, address & 0xff,address >> 8);
 out(0xC0, 0, data-0x20);
}

von Wolle (Gast)


Lesenswert?

Ich kenne mich in C nicht aus, aber du must die Zahl in ein
ASCII-Zeichen umrechnen (Zahl + 0x30) 1 = 0x31, 2= 0x32 usw. und dann
senden als "char" oder im Display die entsprechende ROM-Adresse
ansprechen (Datenblatt).

von Alex (Gast)


Lesenswert?

für int --> char

itoa (...) aus der stdlib.h des WinAVR-Paketes.

Falls es mal mit Komma sein soll:

dtostrf (...) oder so ähnlich.

Wirf einfach mal einen Blick in die oben genannte Header-Datei.

Gruß, Alex

von Khani (Gast)


Lesenswert?

Hallo,

gibt's bei Deinem C kein "itoa" ?

Dann ist's simpel, denn itoa füllt einen String mit den Zeichen der
Dezimalzahl.

Bsp.: str = itoa(number, str, base);

einfach googlen nach itoa und die Referenz lesen, wenn Du nicht weißt,
wie man's bedient.

MfG, Khani

von Khani (Gast)


Lesenswert?

dito, Alex ;-)

MfG, Khani

von Matthias Friedrich (Gast)


Lesenswert?

Oder für kompliziertere Wandlungen:

int sprintf(char* buffer, const char* format [, argument] ...);

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.