Wie bekomme ich hin, das P1, P2 etc. in arrays sind? was ich meine ist, das ich wenn es geht ich dann irgendwo im programm P1a[4]=1; setze, dann automatisch auch P1_4 auf 1 gesetzt wird... und auch andersrum, wenn ich P1_3=1; setze, dann soll P1a[3] auch automatisch 1 werden.. ich brauch das, damit ich die einzelnen bits in for-schleifen überprüfen kann...
.m4jX schrieb: > ich brauch das, damit ich die einzelnen bits in for-schleifen überprüfen > kann... Bitoperationen? P1_3=1 => P1 |= 1<<3 P1a[3] == 1 => P1 & 1<<3
.m4jX schrieb: > P1a[4]=1; > > setze, dann automatisch auch P1_4 auf 1 gesetzt wird... Index auf Bits ist nicht möglich (unterstützt wohl auch keine CPU). .m4jX schrieb: > ich brauch das, damit ich die einzelnen bits in for-schleifen überprüfen > kann... Dazu nimmt man ne Maske, die man schiebt:
1 | mask = 1; |
2 | for(;;){ |
3 | P1 |= mask; |
4 | mask <<= 1; |
5 | }
|
Peter
Peter Dannegger schrieb: >Index auf Bits ist nicht möglich (unterstützt wohl auch keine CPU). "bit banding" gibts beim Cortex-M und die Idee ist sicher nicht neu.
Thomas Klima schrieb: > "bit banding" gibts beim Cortex-M und die Idee ist sicher nicht neu. Schon der 8051 hat Bitbefehle. Aber das hat nichts mit der Frage hier zu tun. Der OP wollte über einen Index (0..7) das Bit auswählen und das geht nicht. Man kann sich bestenfalls eine Funktion schreiben, die den Index in eine Maske umrechnet und damit maskiert. Peter
ok wenn das nicht geht, dann lass ich es so wie es ist... Vielen Dank an alle.
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.