Forum: PC-Programmierung Binärwert von IO/Modul berechnen?


von Christoph (Gast)


Lesenswert?

Hallo,

ich habe ein Eingangsmodul mit 16 digitalen Eingängen.

Die Adresse von den Eingängen sind Binär:

DI1   DI2  DI3   DI4 ....... DI16
 1     2    4     8         32768


Sind nun zB. DI2  DI4 und DI16 aktiv (High)

bekomme ich den Wert 32778 vom Modul.

Wie berechne ich nun mit deser Zahl welche Ausgänge auf High sind?

mfg

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

am einfachsten mit dem Windows Taschenrechner, den du auf den Modus 
"wissenschaftlich" einstellst.

Die Eingabe deiner Werte bmachst du im Darstellungsmodus "binär", und 
die Ausgabe im Modus "dezimal"

Ach ja, dei Darstellung deiner binär-Eingänge dürfte genau "anders rum" 
sein:

DI16 dürfte ganz links liegen, und DI1 ganz rechts....

von Christoph (Gast)


Lesenswert?

Danke für die Antwort, ja stimmt die Eingänge sind genau anders rum.

Mit dem Windows Taschenrechner hab ich das schon gmeacht, mein Problem 
ist eigendlich was benutze ich dafür für eine Formel damit ich das in 
eine Software einbauen kann die dann weiß welche Eingänge high und 
welche low sind.

von Karl H. (kbuchegg)


Lesenswert?

Christoph schrieb:
> Danke für die Antwort, ja stimmt die Eingänge sind genau anders rum.
>
> Mit dem Windows Taschenrechner hab ich das schon gmeacht, mein Problem
> ist eigendlich was benutze ich dafür für eine Formel damit ich das in

Im folgenden Link wird eine kleine Einführung in die Thematik gegeben. 
Der Link dreht sich eigentlich um etwas anderes, aber die Einführung 
beantwortet genau deine Frage. Wenn dort von 8 Bit die Rede ist, lass 
dich nicht verdriessen ... es geht um die Systematik. Und die ist bei 16 
Bit genau die gleiche wie bei 8 Bit.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Arithmetik8#8-Bit_Arithmetik_ohne_Ber.C3.BCcksichtigung_eines_Vorzeichens

> eine Software einbauen kann die dann weiß welche Eingänge high und
> welche low sind.

Das brauchst du nicht. Denn wenn du den Link begriffen hast, hast du 
gelernt, dass binär und dezimal einfach nur 2 verschiedene Schreibweisen 
desselben Sachverhaltes sind: einer Zahl. D.h dein Problem reduziert 
sich damit zu: Wie setzte ich ein Bit, Wie lösche ich ein Bit und Wie 
stelle ich fest, ob ein Bit gesetzt ist. Ob dieser Bithaufen dann binär 
in Form von 0 und 1 angezeigt wird oder dezimal als dir vertraute Zahl, 
das ist eine reine Frage dessen, wie man sich diesen Bithaufen anzeigen 
lässt.

Bitmanipulation

von Christoph (Gast)


Lesenswert?

Danke!

werd mir das mal duchlesen, ich hoff ich weiß dann wie  es 
funktioniert... :-)

von Christoph (Gast)


Lesenswert?

Hallo,

hab mir das ganze jetzt duchgelesen und verstehe wie es funktoniert.


die Frage ist jetzt noch wie bau ich das ganze in Visual Basic ein, wie 
schreibt man am besten so eine Formel?

mfg

von Gnar (Gast)


Lesenswert?


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.