Forum: Compiler & IDEs 16 Bit Zahl auf LCD wiedergeben


von Mike (Gast)


Lesenswert?

Hallo

ich habe ein unsigned int das ich auf einem LCD mit der Lib von Peter 
Fleury darstellen will.
1
itoa( Takt_Vorspann , buffer, 16);
2
lcd_puts(buffer );       
3
lcd_puts(" Takt_Vorspann\n");

eine 8 Bit Zahl lässt sich somit prima anzeigen. doch wenn ich diese 
Variable auf 65535 setze zeigt mir der LCD nur ffff an. also das ganze 
in Hex. ich wolle dies aber gerne in Dezimal haben.

was habe ich da falsch gemacht?

von Falk B. (falk)


Lesenswert?

@ Mike (Gast)

>was habe ich da falsch gemacht?

Du hast die falsche Zahlenbasis angegeben.
1
itoa( Takt_Vorspann , buffer, 16);  // Hexadezimal
2
itoa( Takt_Vorspann , buffer, 10);  // Dezimal
3
itoa( Takt_Vorspann , buffer, 2);  // Binär

MFG
Falk

von Mike (Gast)


Lesenswert?

nun zeigt mir der LCD aber immer den wert Takt_Vorspann-65536 an.
also bei Takt_Vorspann = 65500 zeigt der LCD mir -36 an.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

itoa wandelt einen int, also einen VORZEICHENBEHAFTETEN Wert in einen 
String um.

Die korrespondierende vorzeichenlose Funktion für unsigned int heißt 
utoa.

von Rolf Magnus (Gast)


Lesenswert?

Vermutlich hat itoa einen int als Parameter, und der ist 
vorzeichenbehaftet und geht deshalb nur bis 32767.

von Mike (Gast)


Lesenswert?

nun funktionierts danke

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.