Forum: Mikrocontroller und Digitale Elektronik Byte in einzelne Bits zerlegen AVR


von Bastler (Gast)


Lesenswert?

Hallo,

wie kann man ein Byte in Acht einzelne Bits Zerlegen in BASCOM?

von Peter D. (peda)


Lesenswert?

Garnicht.

Man kann nur einzelne Bits setzen, löschen oder testen.
In C:
1
  uint8_t val;
2
3
  val |= 1<<5;       // Bit 5 setzen
4
  val &= ~(1<<0);    // Bit 0 löschen
5
  if( val & 1<<2 ){  // Bit 2 testen
6
  }


Peter

von Klaus 2. (klaus2m5)


Lesenswert?

Wie bei den Ports auch, man gibt die Bitnummer mit Punkt getrennt hinter 
dem Variablennamen an.

Beispiel:

Print B.2    'gibt Bit 2 aus B als 1 oder 0 aus

von KB (Gast)


Lesenswert?

Hi.
Wozu braucht man das?
Bist du etwa beim CAN zugange? ;)

von Bastler (Gast)


Lesenswert?

KB schrieb:
> Bist du etwa beim CAN zugange?

Nein, ich habe mit einenm Schieberegister den Input eines Atmega32 
erweitert.
und da habe ich dann ein Byte als Variable.

Würde das den dann so funktionieren wenn ich es richtig verstanden habe?

Dim V as Byte
Dim Bit1 As Bit
Dim Bit2 as Bit
Dim usw.

Bit1 = V.1
Bit2 = V.2
usw.

von Klaus 2. (klaus2m5)


Lesenswert?

Ja, Du kannst aber die Bits auch direkt verwenden, ohne sie vorher 
kopieren zu müssen.  (z.B. if V.1 = 1 then).

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
Noch kein Account? Hier anmelden.