Jump to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Geschrieben

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

 

 

 

Geschrieben

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");

 

Geschrieben
  • Autor

herzlichen dank

 

Heute ist mal wider einer der tage wo mann mit beiden Füssen auf auf dem schlauch steht

 

Gruß masder

Geschrieben
  • Autor

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

Geschrieben

das:

if(!((i&1)==1)){

System.out.println("test1");

 

solltest Du in

if(!((i&1)!=0)){

System.out.println("test1");

 

oder ( besser )

if(((i&1)==0)){

System.out.println("test1");

 

ändern.

Geschrieben
  • Autor

ja du hast recht  man kann dann sogar noch eine klammer weg lassen

 

int i=io2.getValue();

if((i&1)==0){  //true wen der schalt kreis geschlossen

}

if((i&1)==1){ //true wen der schalt kreis unterbrochen

}

 

Gruß masder

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...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.