Forum: Compiler & IDEs Int in char umwandeln für textausgabe


von Werner (Gast)


Lesenswert?

Hallo,

Ich möchte gerne Sekunden als Zahl auf einem Display ausgeben.
Die Sekunden sind als typ int sekunden; deklariert.

wenn ich so ausgeben will lcd_write_txt(sekunden); kommt nur "Müll" 
dabei raus. Ist mir auch klar :)
Wie kann man denn jetzt die int in eine char umwandeln, sodass ich die 
zahl als asci bekomme um sie auszugeben?

die funktion sprintf() ist bei mir nicht so erfolgreich. Habe gelesen, 
dass es evtl so funktionieren würde. Aber es will noch nicht so recht.

von M. K. (kichi)


Lesenswert?

Du kannst die Zahl in einem int belassen, musst allerdings die Ziffern 
(jede einzelne) in (ein) ASCII-Zeichen umwandeln.

Schau dir mal im Tutorial den Abschnitt über die UART (Schreiben von 
Variableninhalten) an, das müsste dir ein Stück weiterhelfen.

von Matrix (Gast)


Lesenswert?

uint8_t s[4];
sprintf( s, "%d", Sekunden);
lcd_write_txt(s);

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Matrix wrote:
> uint8_t s[4];
> sprintf( s, "%d", Sekunden);
> lcd_write_txt(s);

Oh ich habe Bauchweh aua, aua...

Wenn Sekunden int ist und int 16-Bits hat, sollte s mindestens Platz für 
5 Ziffern plus 1 Zeichen vom Vorzeichen plus ein Zeichen für 
abschliessendes Nullbyte haben.

von Robin T. (rotoe) Benutzerseite


Lesenswert?

1
uint8_t sekunden;
2
char ASCII[15];
3
utoa(sekunden, ASCII, 10);
4
lcd_write(ASCII);
Das tuts auch.

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.