-
Eingänge als Binärzahl ?
Hallo,
ich musste gerade mit der Überschrift grübeln, wenn jmd. eine bessere findet bitte melden.
Es ist so ich habe an meinem Atmega8 an Pind.4 bis Pind.7 einen Dip-Schalter. Andere Pins des PortD sind als Ausgänge geschaltet, diese als Eingang.
Ich möchte jetzt in eine Variable den Wert von den aliegenden Bits ermitteln aus den Binärziffern. Also z.B. so:
Code:
d.4 d.5 d.6 d.7
on off on on = 11
off on off on = 5
Bei on liegt ein High-Pegel an, bei off ein Low-Pegel. Der Wert soll in eine Variable vom Typ Byte gespeichtert werden.
Da ich noch nicht lange BasCom programmiere, wäre ich für eine Hilfe dankbar, weil ich in der Hilfe nicht fündig wurde und nicht wusste wonach ich suchen soll.
Thx, Mfg
ProgDom
-
hallo ProgDom,
wenn ich dich richtig verstehe willst du einfach nur den Wert der vier Bits in einem Byte abspeichern.
Dann mach es doch einfach so
Byte=Portd AND &B11110000
Wenn jetzt unbedingt die Bits an Position 0-3 sein sollen dann nocht
Rotate Byte, Right(4)
Hoffe das hilft dir
Gruß
Baui
-
Danke, das war genau das was ich brauchte.
Wusste net wie und ob das mit den Bitmasken geht und das umdrehen wusst ich auch nicht.
Aber so ist das perfekt.
Thx
MFG
ProgDom
-
Hallo ProgDom,
etwas sparsamer ist übrigens der Befehl Shift, Right (4) da dieser nicht das Byte zwischenspeichert. Für dich reicht das voll und ganz.
Keine Ursache
Gruß
Baui