Bitweise Byte auslesen?

Gast #3586237
Lesenswert?

Hallo zusammen,

aus einem C Forum habe ich folgendes abgekupfert und, ja, ohne es genau 
zu kapieren.

Ich habe ein 5 Byte Array aus dem ich gerne bitweise die Bitwerte in 
"result" zurückgeben möchte.

  if( (myByte >> i) & 1 ) {

    result = 1;

    }

myByte enthält jeweils das Byte, welches auch korrekt ausgelesen wird 
(LED geht an "if(myByte)". Nur die Bitwerte kriege ich da noch nicht 
raus-geshiftet...

Danke, Klaus.
Gast #3586253
Lesenswert?

Diese Bitroutine...
1
int read_eeprom_bitwise(void) {
2

3
  unsigned char result=0, characters=0, bit1=0, bit2=0;
4

5
  characters=sizeof(pgmSignatureArray_01);  //Anz. der Datenwerte im array ermitteln
6
  
7
  if(i<=characters) {
8
        
9
    myByte = pgm_read_byte(&pgmSignatureArray_01[i]);  //Daten aus array an Adr. "i" kopieren
10

11
    }
12

13

14
  //if(myByte) PORTB ^= (1 << LED_G);
15

16
  
17
  bit1 = (myByte >> k);
18
  bit2 &= 0b00000001;
19
  
20
  if( 1 ) {
21

22
    result = 1;
23

24
    }
25

26
  k++;
27

28
  if(k==8) {i++; k=0;}
29

30
  if(i==characters) {i=0;}
31

32
  return 0;
33

34
  }



Wird hier in der main aufgerufen...
1
if(mode==1 && flag_1==1){    // LED_RHP gibt Bitmuster aus
2

3
  read_eeprom_bitwise();
4
  if(result) {PORTB ^= (1 << LED_RHP);}
5
  flag_1=0;
6

7
  }

i + k werden sauber hochegzählt, aber result scheint nur einfach nicht 
global verfügbar - bööps.

Klaus.

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