Forum: Mikrocontroller und Digitale Elektronik Keil C51 - binäre Zahlendarstellung


von Johannes S. (schneijo)


Lesenswert?

Hallo,

folgender simpler Sachverhalt:
Ich möchte gerne im Keil C51-compiler feste binäre Werte auf Bytes 
zuweisen.
leider kann ich im Handbuch nich die richtige Notation dafür finden.
Gesucht wird sowas wie:

BYTE Out_port;

Out_port = b'11001010';    // so ähnlich läuft das in Verilog

Gibt es eine solche Notation in C?
viele Grüße

Juppy

von Gast (Gast)


Lesenswert?

Jörg, Dein Einsatz !!

von Ralf (Gast)


Lesenswert?

> Jörg, Dein Einsatz !!
Ich bin zwar nicht Jörg, aber ich kann denke ich trotzdem die Antwort 
geben :)

Ich hab das auch schon versucht, aber es ist keine Standard C Notation 
dafür vorhanden und somit kann das kein C Compiler. Ich habe mir damals 
so beholfen, dass ich eine Headerdatei erstellt habe, in der ich das 
dann umgeschlüsselt habe:
1
...
2
#define B00000000 0
3
#define B00000001 1
4
#define B00000010 2
5
...
Wichtig ist, dass das erste Zeichen ein Buchstabe ist und keine Zahl 
oder ein Sonderzeichen.
Mit ein bisschen Kenntnis von Excel und einem passenden Texteditor 
(z.B.TextPad) hat man das Headerfile in zwei Minuten erstellt und muss 
nicht mühsam alle Werte von Hand eintragen.

Ralf

von Gast (Gast)


Lesenswert?

Der GCC kann das:

x=0b00000010

von avr (Gast)


Lesenswert?

Hallo Johannes,

direkt war das nicht möglich (ca. 4 Jahre her) aber mit
einem Define als Trick.
1
#define Bin_to_Byte(b7,b6,b5,b4,b3,b2,b1,b0) ((b7 << 7)+(b6 << 6)+(b5 << 5)+(b4 << 4)+(b3 << 3)+(b2 << 2)+(b1 << 1)+b0)

Man muß halt die Kommas akzeptieren.

avr

von yalu (Gast)


Lesenswert?

Das ist der übliche und standardkonforme Weg:

Beitrag "Re: Binär  -- wie in C schreiben?"

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.