Forum: Mikrocontroller und Digitale Elektronik Probl. Keil Ausgabe von 8bit Zahlen???


von Martin (Gast)


Lesenswert?

Hallo Leute!

Hat schon mal wer von euch mit dem Keil-Compiler ein C-Programm für den
8051er geschrieben?

Ich habe ein Problem bei der Ausgabe mit printf über die Serielle.

Zuerst habe ich die Variablen initialisiert.
unsigned char idata z=0x20;

Danach wird die Serielle initialisiert.

Und zum Schluss wird diese Variable über die Serielle ausgegeben.
printf("Hallo: %X",z);

Und wisst ihr was der Bildschirm des PC's anzeigt???
Hallo: 2000


Ich spielte herum und kam dahinter, dass es anscheinend an der 8-Bit
Variable liegt. Wenn ich es so mache funktioniert es:

unsigned int idata z=0x20;

Danach wird die Serielle initialisiert.

printf("Hallo: %X",z);

Hallo: 20


Auch der Simulator hat dasselbe Problem.
Gibt es für die Ausgabe von 8-Bit-Zahlen eine eigene Angbabe für
Printf?
Ich habe auch schon mal einen ATMEGA programmiert. Mit dem dortigen
C-Compiler trat das Problem nicht auf.


Ich bin für jede Antwort dankbar.

Tschüss
Martin

von Michael (Gast)


Lesenswert?

>Hat schon mal wer von euch mit dem Keil-Compiler ein C-Programm für
>den 8051er geschrieben?

JA !!!

Das Handbuch sagt: "%bx" für byte, "x" für word und "lx" für
long.

von Martin (Gast)


Lesenswert?

Danke!

Ich habe im Handbuch nachgesehen, doch dieses ist sowas von umständlich
und unübersichtlich, dass es eine Freude ist.

Zugegeben die Frage, ob schon jemand mal einen 8051er programmiert hat
war vielleicht nicht so ganz angebracht. Ich wollte niemanden auf die
Schaukel nehmen.

Aber danke für deinen Tipp.

Tschüss!

Martin

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.