msp430, 8 bit bus aufteilen

OP #1972171
Lesenswert?

Guten Abend zusammen,

an einem msp430 ist ein 8 bit breiter Bus angeschloßen.
Im µC gibt es eine Funktion die den Bus mit Daten versorgen soll.
die Funktion gibt ein Char zurück.


der Bus ist an den ports:

d7    d6    d5    d4    d3    d2    d1    do
P1.7  P1.6  P1.5  P1.4  P1.3  P3.1  P3.3  P3.2

angeschloßen.

jetzt zum Problem:

Wäre der Bus z.B. an den Ports: P1.7 ... P1.0 angeschloßen, könnte ich 
den Char mittels:

char C
P1OUT=C;

so an den bus (und die Ports) übergeben.

Aber wie "splitte" ich den Char auf, um die richtigen Ports (siehe oben) 
anzusteuern?
wahlweise kann ich die Funktion auch ein Int zurückgeben.

vielen Dank im voraus
OP #1972248
Lesenswert?

bei dem 8 bit breiten bus habe ich 256 versionen

du meinst sowas?

switch (x)
{
case 0:
...
....hier ports setzen
...
break;
case 0:
...
....hier ports setzen
...
break;
case 0:
...
....hier ports setzen
...
break;

..
..
.

case 255:
...
....hier ports setzen
...
break;
}


nicht wirklich oder?
OP #1972314
Lesenswert?

aha, vielen Dank

und das mache ich dann so weiter?

char C = 0b0011010;

if (C & (1 << 0)) {
  // Bit 0 gesetzt...
}

if (C & (1 << 1)) {
  // Bit 1 gesetzt...
}

if (C & (1 << 2)) {
  // Bit 2 gesetzt...
}

if (C & (1 << 3)) {
  // Bit 3 gesetzt...
}
..
..
if (C & (1 << 7)) {
  // Bit 7 gesetzt...
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren