Re: for-Schleife Kategorie: Programmierung (von André H. - 7.11.2003 10:57) | |
Als Antwort auf for-Schleife von TN - 6.11.2003 10:48
| |
Hallo TN, Also bei mir funzt die Funktion: Die for-Schleife wird, wie erwartet, zweimal durchlaufen. byte s; function unscharf_beep() { for s=1...2 { plm.beep(33); sleep 100; plm.beep(20); sleep 100; plm.beep(-1); } } Kann es aber sein, da� die Funktion immerwieder aufgerufen wird, weil Dein auf 1 stehender Integer nicht zurückgesetzt wird ? Um einen Tasten-Druck zu signalisieren, hast Du zwei einfache Möglichkeiten: 1. Mit einer Funktion 2. Mit einem Thread Der Aufrufende Code müsste so aussehen: thread irgendwas {byte c; ... ... c=rbkeyb.get(); if c { // unscharf_beep(); // Bei Funktion run unscharf_beep(); // Bei Thread // Ab hier Tastenauswertung: if c=='1' ... else if c=='2' ... else if c=='3' ... usw. ... ... wait rbkeyb.get()==0 // Warten bis Taste losgelassen } ... ... } Wenn das Beep über eine Funktion aufgerufen werden soll, kann diese so bleiben wie sie ist. Soll jedoch ein Thread hierfür benutzt werden , müsste dieser so aussehen: thread unscharf_beep() {byte s; for s=1...2 { plm.beep(33); sleep 100; plm.beep(20); sleep 100; plm.beep(-1); } halt; } MfG André H. > Hallo, > > ich möchte das mit der folgenden function eine > Tastatureingabe bestätigt wird, dafür setze ich ein > "int" auf "1" welches dann die fuction aufruft: > > function unscharf_beep() > { > for s=1...2 {plm.beep(33); > sleep 100; > plm.beep(20); > sleep 100; > plm.beep(-1);} > } > > Jedoch ist noch etwas falsch, denn das Beep wird immer > wieder ausgeführt. Ist zwar logisch da das "int" immer noch > auf "1" steht, aber die schleife sollte das doch eingentlich > nach dem dritten Durchlauf stoppen. Warum geht das aber > bei mir nicht? > > Was ist falsch. > DANKE Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | |
Antwort schreiben Antworten: |