Jump to content

IO4 abfrage (gelöst)


Masder

Recommended Posts

Hallo

 

ich würde gerne jeden Eingang meines IO4 Briklets unabhängig von einander

auslesen ob er high oder low ist.

Hier bei suche ich eine Möglichkeit nicht alle 16 zahlen einzeln ab zu prüfen.

 

meine Idee war es den erhalten wert(int) den ich bei der abfrage erhalte.

in eine binäre zahl um zuwandeln, und dann in ein char array zu schreiben um so an jede stelle einzel zu kommen.

doch da gibt es ein broblemm den wen die ersten stelen nicht mehr 1 sonder 0 in binär schreib weise sind werde sie einfach abgeschnittten

hier der code den ich geschrieben habe in Java

 

char[] btest = Integer.toBinaryString(io4.getValue()).toCharArray ();

if(btest[0]==0){
   System.out.println("test");
}
if(btest[1]==0){
System.out.println("test2");
}
if(btest[2]==0){
System.out.println("test3");
}
if(btest[3]==0){
System.out.println("test4");
}

 

hat jemand eine gute Idee

wie ich das am besten anstellen kann ???

 

 

Gruß masder

 

 

 

Link zu diesem Kommentar
Share on other sites

int i=io4.getValue();

 

if( i & 1)

  System.out.println("test1");

 

if( i & 2)

  System.out.println("test2");

 

if( i & 4)

  System.out.println("test3");

 

if( i & 8 )

  System.out.println("test4");

 

 

Zum nachlesen ;)

http://www.leepoint.net/notes-java/data/expressions/bitops.html

 

Häufig wird auch mit bit shift operatoren gearbeitet

dann sieht das so aus (technisch das selbe aber einfacher zu lesen):

 

int i=io4.getValue();

 

if( i & 1<<0)

  System.out.println("test1");

 

if( i & 1<<1)

  System.out.println("test2");

 

if( i & 1<<2)

  System.out.println("test3");

 

if( i & 1<<3 )

  System.out.println("test4");

 

Link zu diesem Kommentar
Share on other sites

so habe es noch anpassen müssen aber jetzt passt es so wie ich es haben will

jetzt wirt immer wen man zb den schalter umlegt eine aksion ausgefürt

 

                               int i=io2.getValue();

			if(!((i&1)==1)){
			 System.out.println("test1");
			}
			if( !((i&2)==2)){
			  System.out.println("test2");
			}
			if( !((i&4)==4)){
			  System.out.println("test3");
			}
			if( !((i&==8 )){
			  System.out.println("test4");
			}

 

 

Gruß masder

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...