Hallo, wie kann man ein Byte in Acht einzelne Bits Zerlegen in BASCOM?
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.