Frage zur Syntax (C)

OP Persönliche Seite #2148809
Lesenswert?

Hallo zusammen,
kann ich folgendes schreiben:
1
  unsigned char Wert=0;
2
  unsigned char i;  
3

4
  // 8 Bits hintereinander einlesen, LSB zuerst
5
  for(i=0; i<8; i++)
6
  {
7
    if (OW_R_Bit()) Wert|=0x01<<i;
8
  }

um damit dies zu erreichen:

Die Funktion soll (1-Wire Bus) ein Byte einlesen und mit dem LSB 
anfangen. Der Ausgangswert von der Variable "Wert" ist 0. Wenn ein Bit 
mit High eingelesen wird soll Bit 0 von "Wert" gesetzt werden. Durch das 
inkrementieren von "i", wird dann immer das entsprechende Bit gesetzt. 
Kann ich das im MCC18 Compiler so schreiben?

LG Nico

Nachtrag:

Bzw. wäre:
1
Wert|=0x01<<i;
gleichzusetzen mit:
1
Wert=Wert|(0x01<<i);
#2148821
Lesenswert?

du glaubst ja garnicht was man durch ausprobieren so alles lernt.
Also mach eine main() Funktion um deinen Code rum und nudle die for 
Schleife im Debugger 8 mal durch. Dabei schaust du dir an, wie sich die 
Variablen bei jederm Durchlauf verändern,
und dann kennst du die Antwort(en) auf deine Frage(n).

viel Spass dabei
Remo

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