Wie programmiert man eine Arduino - Bitmaskierung?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Also: eine Maske ist 

1000000 =128 Dez
0100000 = 64 Dez
...
0000001 = 1 Dez

Du beginnst also mit 128 und schiebst jedesmal die Maske 1 nach rechts (Operator: >>). 

In deinem Beispiel sehe ich nicht was was ist und was du raus bekommen willst. Ausserdem sind deine Variablen nicht initialisiert, da kann nichts vernünftiges passieren. 


tomr1337 
Fragesteller
 20.03.2017, 21:17

Hab sie im Nachhinein initialisiert, klappt immer noch nicht

0
nikolaiki  20.03.2017, 21:24
@tomr1337

Ok. Dass die Schleife 8x durchläuft ist noch logisch. Aber jedes mal steht da ergebnis= ... wird also jedesmal überschrieben.  Wie kriegst du denn die bits auf die lampen? 

0
tomr1337 
Fragesteller
 20.03.2017, 21:40
@nikolaiki

Wir sollen nichts auf Lampen bringen. Unser Lehrer möchte, dass wir das Ergebnis in einem Seriellen Monitor festhalten

0
nikolaiki  20.03.2017, 23:29
@nikolaiki

Ok verstehe, im Grunde soll nur dastehen: Bit an Bit aus Bit an ...
Das koennte etwa so aussehen:

// open the serial port at 9600 bps:
Serial.begin(9600);

int zahl= 0x33; /* Zahl die ausgegeben wird /
int maske = 1; /
Bit 0 (das Bit ganz rechts) /
int ergebnis; /
temporaer benoetigt /

for(int cnt=0; cnt<8; cnt++)
 {
 ergebnis=zahl&maske;
 Serial.print("Bit ");
 Serial.print(cnt);
 Serial.print(" ist ");
 Serial.println(ergebnis);
 delay(100);
 zahl=zahl>>1; /
schiebe rechts */
 }




0