Archiv verlassen und diese Seite im Standarddesign anzeigen : Jeweils 2 Bit mit einem byte "verknüpfen"
kalletronic
23.11.2007, 21:47
Hi, jetzt hab ich schon wider ein problem:
ich muß den wert 00,01 oder 10 mit in ein Byte schreiben und das an die entsprechende stelle also auf bit 1und 2 , 3und 4 , 5und 6 oder 7und 8
wobei die jeweils anderen Bits nicht verändert werden dürfen. in einer Variable steht die stelle an die die 2 Bits kommen und in ner anderen der Wert, beide sind vom typ Byte
Torsten_G
23.11.2007, 22:30
Hi,
Du kannst in einer Byte-Variable die einzelnen Bits ansprechen:
Dim Bytevar as byte
Dim Deinevar as byte
Dim Stelle_1 as byte
Dim Stelle_2 as byte
....
Stelle_2 = Stelle_1 +1
Bytevar.Stelle_1 = Deinevar.0
Bytevar.Stelle_2 = DeineVar.1
....
Ist nur mal so in der Rohfassung runtergetippt, vielleicht hilft es Dir ja auf die Schiene...
Bei den Port-Registern ist es eigentlich ähnlich, z. B. PortB.4=1.
Da bin ich mir jetzt aber nicht sicher, ob man das Bit per Variable angeben kann. Ich meine, bei Ports funzt das nicht mit Bascom...
Grüße
Torsten
Ich würde es z.B. so machen
Dim bPos As Byte
Dim bWert As Byte
Dim bErgebnis As Byte
Dim bPos_wert As Byte
Dim bEndergebnis As Byte
bPos = 3
bWert = &B11
bErgebnis = &B11000001
bPos_wert = bWert
Shift bPos_wert , Left , bPos
bEndergebnis = bErgebnis Or bPos_wert
End
In bEndergebnis steht dann &B11011001
Gruß
Rolf
kalletronic
24.11.2007, 15:19
hi, danke für die hilfe!
ich habs grad mal versucht, aber mit der Lösung von Rolf funzt es nur teilweise.
Wenn so ein Bitpaar zB &B01 hat, und dann auf &B10 gesetzt wird, dann steht im Byte &B00000011 was aber nicht sein darf, die Zustände dürfen nur &B01 oder &B10 oder &B00 haben
ne, du musst natürlich beide bit neu schreiben. bei der or function ist klar dass es dann 11 ist.
entweder das ganze vorher komplett löschen und dann mit OR neu schreiben, oder direkt setzen oder je nach 0 oder 1 mit AND/OR arbeiten. Aber rotate und die finctions sind schon eine gute kombination
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.