PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einzelnes Bit ansprechen????



Robotik84
26.10.2006, 16:40
olla leutz,

i habe eine 8bit wert. dann muss i sagen, dass wenn das 4./5./6.Bit gesetzt ist jeweils eine aktion ausgeführt werden soll.
und nu meine frage:
wie kann i sagen, das wenn 4. bit gesetzt, dann mache eine aktion unabh der beiden anderen bits???

bei mir ist das so: wenn jeweils das jeweilige bit allein gesetzt ist, dann funzt es, aber sobald zwei gesetzt sind klappt es nicht mehr.

kann mir bitte jemand weiterhelfen???

Gruß Jens

PicNick
26.10.2006, 16:47
"BASCOM"
If Meinbyte.0 = 1 then gosub nullerbit_gesetzt
If Meinbyte.3 = 1 then gosub dreierbit_gesetzt

"C"
if (Meinbyte & (1 << 0)) nullerbit_gesetzt();
if (Meinbyte & (1 << 3)) dreierbit_gesetzt()

uwegw
26.10.2006, 16:47
Prozessor/µC?
Sprache?
Datenquelle?

Wenn es in deinem Fall keine fertige Lösung geben soltle, müsstest du dich mal mit den verschiedenen Logikoperationen wie AND, OR, XOR... beschäftigen.

In deinem Fall: du verODERst dein Byte mit einem Byte, in dem alle Bits außer dem an der 4. Stelle gesetzt sind, und prüfst dann, ob im Ergebnis alle Bits gesetzt sind.
Oder die Lösung von picnick in C (AND mit nem Byte, wo nur das relevante Bit gesetzt ist, und dann testen ob das Ergebnis ungleich null (für C also true) ist). Es gibt bei so was unzählige Kombinationen...

Robotik84
26.10.2006, 16:49
also muss mit turbo c++ 3.0 programmieren.

Robotik84
26.10.2006, 16:56
hey danke uwegw...das hat gefunzt...

Vielen Dank!!!