Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo, > > hab mal wieder ein Problem, bin jedoch mit Eurer Hilfe > schon viel weiter in der Programierung. Nun ein bissl. > Code: > > int i,a,u1, u2, key; > byte adr, mask, out, input; > > > //********************************// > function Taste () returns int > //********************************// > { > > //while (ports.adc(7)>900); > u1= ports.adc(7); > u2= ports.adc(7); > if (math.abs(u1-u2))< 4 > { > if u1<901 key=3;//3 > if u1<825 key=6;//6 > if u1<755 key=9;//9 > if u1<690 key=12;//# > if u1<620 key=2;//2 > if u1<550 key=5;//5 > if u1<480 key=8;//8 > if u1<410 key=0;//0 > if u1<335 key=1;//1 > if u1<270 key=4;//4 > if u1<190 key=7;//7 > if u1<110 key=11;//* > if u1>1000 key=-1; > } > return key; > } > //********************************// > function error_on() > //********************************// > { > rblcd.init(); > rblcd.goto(2,4); > rblcd.print("Bus Fehler"); > sleep 5000; > } > //********************************// > function error_off() > //********************************// > { > run 100; > rblcd.init(); > rblcd.goto(2,4); > rblcd.print("PIO-4 OK"); > sleep 1000; > } > > /*******************************************************/ > /*** Thread Schlüsselschalter */ > /*******************************************************/ > thread schluessel > { > do{ports.set(14,1);} > while key==3; > } > > //********************************// > function abfrage_Pio() > //********************************// > { > rblcd.init(); > adr = 1; // PIO-4 Sensor auf Adresse 1 > mask = 0x08; // PA3 (violett) = Ausgang > // PA0 bis PA2 (grau, weiß, pink) = Eingang > // Bitmuster : 0000 1000 > out = 0x08; // Ausgang soll +5V annehmen > // Bitmuster : 0000 1000 > input = twbs.rwport(adr, mask, out); // Digitalport schreiben & lesen > > // Wenn die Drähte grau und weiß mit violett verbunden wurden, ergibt sich : > // input hat den Wert 0x0B > Bitmuster : 0000 1011 // Für PA3 steht das Bit auf > 1, weil das Ausgangsbit mit out gesetzt wurde > > if input==0x0C //Pink PA2 > { > run schluessel; > } > > if input==0x08 //PA3 > {error_off();} > > } > > /*******************************************************/ > /*** Thread Tastaturabfrage */ > /*******************************************************/ > //------------ > thread tast_abfrage > //------------ > { > > rbkeyb.select(0); > lcd.init (); > lcd.goto(0,0); > > //while (rbkeyb.get()==0); > lcd.put(rbkeyb.get()); > sleep 100; > } > > /*******************************************************/ > /*** Thread MAIN */ > /*******************************************************/ > //------------ > thread main > //------------ > { > ports.set(14,0); > twb.init(); > abfrage_Pio(); > run tast_abfrage; > } > > Nun das Problem: > > Im Thread "schlüssel" möchte ich, dass der Port 14 > high geht und dass aber nur solange bis die Taste 3 > betätigt wird. Funktioniert bei mir aber nicht. > > Was mach ich falsch. Sind fehler im Prog.? > > Allergrößten Dank!!! >