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
über eine extra Funktion in der du rein schreibst welche pins er ansprechen soll wenn du ihm deine Daten übergibtst. Ein fertige Funktion gibt es für sowas nich das must du schon selber machen
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?
Du prüfst einfach für jedes Bit in dem char, ob es gesetzt ist, und setzt dann die Leitungen auf die entsprechenden Werte.
1 | char C = 0b0011010; |
2 | |
3 | if (C & (1 << 0)) { |
4 | // Bit 0 gesetzt...
|
5 | }
|
6 | |
7 | if (C & (1 << 1)) { |
8 | // Bit 1 gesetzt...
|
9 | }
|
Nur mal so als Denkansatz...
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... }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.