Forum: Mikrocontroller und Digitale Elektronik BASCOM --> Bits aufteilen und am Port ausgeben


von Sven Scholz (Gast)


Lesenswert?

Ich brauche da mal einen kleinen Denkanstoß.
Ich will folgende Bitkombination an den Portpins ausgeben.

10101 (21)

bitvariable = 21

Die oberen 2 Bit (10) sollen nach PinD.5 und PinD.6
die mittleren 2 Bit (10) sollen nach PinC.3 und PinC.2
und das LSB (1) soll nach PinB.7 wandern.

Wie macht man so etwas unter BASCOM? (am einfachsten bzw. effektivsten)
Hatte schon an shift operationen gedacht?

Bitte helft mir weiter. Vielen DANK!

von Peter D. (peda)


Lesenswert?

var2 = 0
if var1 and 0x01 then var2 = var2 + 0x80
if var1 and 0x02 then var2 = var2 + 0x04
if var1 and 0x04 then var2 = var2 + 0x08
if var1 and 0x10 then var2 = var2 + 0x40
if var1 and 0x20 then var2 = var2 + 0x20


Peter

von Netbird (Gast)


Lesenswert?

BASCOM bietet die Möglichkeit, ein Bit aus einer Variablen 
herauszulesen. Ich glaube, es geht so (habe die Unterlagen nicht parat):

PinD.5 = bitvariable.5
PinD.6 = bitvariable.4
...

Schau mal bei den Befehlen BITS, SET, RESET, TOGGLE, da ist es irgendwo 
dabei.

von frank (Gast)


Lesenswert?

nimm die case anweisung

von PeterK (Gast)


Lesenswert?

Fast genauso wie Netbird es sagt. Nur allerdings mit Port und nicht Pin 
(Pin=Input, Port = Output)
Das ist am einfachsten:
PortD.5 = bitvariable.4
PortD.6 = bitvariable.3
PortC.3 = bitvariable.2
PortC.2 = bitvariable.1
PortB.7 = bitvariable.0

Gruß
PeterK

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.