Re: Funktionstasten Kategorie: Programmierung (von Walter - 16.12.2006 20:04) | ||
Als Antwort auf Re: Funktionstasten von reneforster - 11.12.2006 20:44 | ||
| ||
> > Hallo! > > > > Möchte gerne mit der Funktionstaste (F1) den Relaisausgang (K1) bei Betätigung > > schalten. Hoffe mir kann wieder mal jemand helfen! > > > > Vielen Dank - wünsche noch ein schönes Wochenende! > > Servus Walter, > > die Funktionstasten werden wie die normalen Tasten mit einem Code abgefragt. > F1 = 10 > F2 = 11 > F3 = 12 > > Ich habe bei mir z.B. einen Extra Thread zur Tastenabfrage erstellt. Dieser Thread läuft dann in einer > Schleife mit run1. (niedrige Prio, reicht für die Erkennung des Tastendrucks völlig aus) > > z.B. > > > //------------------------------------- > thread Tasten > //------------------------------------- > { > run 1; > byte data_s[7]; > int n,ad,getkey; > long code; > string s,t; > > global.Menu=0; > > loop > { > code=stkeyb.get(); > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 1) // Ausführen bei Drücken von 1 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 {// Licht Wohnzimmer alles AUS ************************************** > max7311.set(2,0,0);max7311.set(2,1,0);max7311.set(2,2,0);max7311.set(2,3,0); > max7311.set(2,4,0);max7311.set(2,5,0);max7311.set(2,6,0);max7311.set(2,7,0); > max7311.set(2,8,0);max7311.set(2,9,0);max7311.set(2,10,0);max7311.set(2,11,0); > max7311.set(2,12,0);max7311.set(2,13,0);max7311.set(2,14,0); > lcdext.clear();lcdext.print("Licht Wohnzimmer");lcdext.line(2);lcdext.print("Lampen AUS"); > global.LA1=0;global.LA2=0;global.LA3=0;global.LA4=0;global.LA5=0;global.aus232=4;sleep 500;continue;} > > if global.Menu==2 // Ostseite alles Rolladen ZU ************************************** > {max7311.set(0,7,1);max7311.set(0,1,1);max7311.set(0,9,1); > lcdext.clear();lcdext.print("Ostseite");lcdext.line(2);lcdext.print("Rolladen ZU"); > sleep 500;max7311.set(0,7,0);max7311.set(0,1,0);max7311.set(0,9,0);sleep 500;continue;} > > if global.Menu==3 // Wohnzimmer Strom EIN ************************************** > {max7311.set(6,5,0);max7311.set(6,4,1); > lcdext.clear();lcdext.print("Wohnzimmer");lcdext.line(2);lcdext.print("Strom EIN"); > sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 2) // Ausführen bei Drücken von 2 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 {// Licht Wohnzimmer alles EIN ************************************** > max7311.set(2,0,1);max7311.set(2,1,0);max7311.set(2,2,0); > max7311.set(2,3,1);max7311.set(2,4,0);max7311.set(2,5,0); > max7311.set(2,6,1);max7311.set(2,7,0);max7311.set(2,8,0); > max7311.set(2,9,1);max7311.set(2,10,0);max7311.set(2,11,0); > max7311.set(2,12,1);max7311.set(2,13,0);max7311.set(2,14,0); > lcdext.clear();lcdext.print("Licht Wohnzimmer"); > lcdext.line(2);lcdext.print("Lampen EIN"); > global.LA1=1;global.LA2=1;global.LA3=1;global.LA4=1;global.LA5=1;global.aus232=4;sleep 500;continue;} > > if global.Menu==2 // Ostseite alles Rolladen AUF ************************************* > {max7311.set(0,6,1);max7311.set(0,0,1);max7311.set(0,8,1);lcdext.clear(); > lcdext.print("Ostseite");lcdext.line(2);lcdext.print("Rolladen AUF"); > sleep 500;max7311.set(0,6,0);max7311.set(0,0,0);max7311.set(0,8,0);sleep 500;continue;} > > if global.Menu==3 // Wohnzimmer Strom AUS ************************************** > {max7311.set(6,4,0);max7311.set(6,5,1); > lcdext.clear();lcdext.print("Wohnzimmer");lcdext.line(2);lcdext.print("Strom AUS"); > sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 3) // Ausführen bei Drücken von 3 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 {// Licht Wohnzimmer alles Tageslicht ****************************** > max7311.set(2,15,1); > max7311.set(2,0,1);max7311.set(2,1,1);max7311.set(2,2,0); > max7311.set(2,3,1);max7311.set(2,4,1);max7311.set(2,5,0); > max7311.set(2,6,1);max7311.set(2,7,1);max7311.set(2,8,0); > max7311.set(2,9,1);max7311.set(2,10,1);max7311.set(2,11,0); > max7311.set(2,12,1);max7311.set(2,13,1);max7311.set(2,14,0); > lcdext.clear();lcdext.print("Licht Wohnzimmer"); > lcdext.line(2);lcdext.print("Lampen TAG"); > global.LA1=4;global.LA2=4;global.LA3=4;global.LA4=4;global.LA5=4;global.aus232=4;sleep 500;continue;} > > if global.Menu==2 // Südseite alles Rolladen ZU ************************************** > {max7311.set(0,11,1);max7311.set(0,5,1);max7311.set(1,1,1);lcdext.clear(); > lcdext.print("Suedseite");lcdext.line(2);lcdext.print("Rolladen ZU"); > sleep 500;max7311.set(0,11,0);max7311.set(0,5,0);max7311.set(1,1,0);sleep 500;continue;} > > if global.Menu==3 // Arbeitszimmer Strom EIN ************************************** > {max7311.set(6,3,0);max7311.set(6,2,1); > lcdext.clear();lcdext.print("Arbeitszimmer");lcdext.line(2);lcdext.print("Strom EIN"); > sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 4) // Ausführen bei Drücken von 4 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 {max7311.set(2,15,1); > max7311.set(2,0,0);max7311.set(2,1,1);max7311.set(2,2,0); > max7311.set(2,3,0);max7311.set(2,4,1);max7311.set(2,5,0); > max7311.set(2,6,0);max7311.set(2,7,1);max7311.set(2,8,0); > max7311.set(2,9,0);max7311.set(2,10,1);max7311.set(2,11,0); > max7311.set(2,12,0);max7311.set(2,13,1);max7311.set(2,14,0); > lcdext.clear();lcdext.print("Licht Wohnzimmer"); > lcdext.line(2);lcdext.print("Lampen Kombi 1"); > global.LA1=2;global.LA2=2;global.LA3=2;global.LA4=2;global.LA5=2;global.aus232=4;sleep 500;continue;} > > if global.Menu==2 // Südseite alles Rolladen AUF ************************************* > {max7311.set(0,10,1);max7311.set(0,4,1);max7311.set(1,0,1);lcdext.clear(); > lcdext.print("Sueddseite");lcdext.line(2);lcdext.print("Rolladen AUF"); > sleep 500;max7311.set(0,10,0);max7311.set(0,4,0);max7311.set(1,0,0);sleep 500;continue;} > > if global.Menu==3 // Arbeitszimmer Strom AUS ************************************** > {max7311.set(6,2,0);max7311.set(6,3,1); > lcdext.clear();lcdext.print("Arbeitszimmer");lcdext.line(2);lcdext.print("Strom AUS"); > sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 5) // Ausführen bei Drücken von 5 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 {max7311.set(2,15,1); > max7311.set(2,0,0);max7311.set(2,1,1);max7311.set(2,2,0); > max7311.set(2,3,0);max7311.set(2,4,0);max7311.set(2,5,1); > max7311.set(2,6,0);max7311.set(2,7,1);max7311.set(2,8,0); > max7311.set(2,9,0);max7311.set(2,10,0);max7311.set(2,11,1); > max7311.set(2,12,0);max7311.set(2,13,1);max7311.set(2,14,0); > lcdext.clear();lcdext.print("Licht Wohnzimmer"); > lcdext.line(2);lcdext.print("Lampen Kombi 2"); > global.LA1=2;global.LA2=3;global.LA3=2;global.LA4=3;global.LA5=2;global.aus232=4;sleep 500;continue;} > > if global.Menu==2 // Westseite alles Rolladen ZU ************************************* > {max7311.set(1,3,1);max7311.set(1,5,1);lcdext.clear(); > lcdext.print("Westseite");lcdext.line(2);lcdext.print("Rolladen ZU"); > sleep 500;max7311.set(1,3,0);max7311.set(1,5,0);sleep 500;continue;} > > if global.Menu==3 // Heizdecke einschalten ************************************** > {max7311.set(6,1,0);max7311.set(6,0,1); > lcdext.clear();lcdext.print("Heizdecke");lcdext.line(2);lcdext.print("eingeschaltet"); > sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 6) // Ausführen bei Drücken von 6 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 {max7311.set(2,15,1); > max7311.set(2,0,0);max7311.set(2,1,0);max7311.set(2,2,1); > max7311.set(2,3,0);max7311.set(2,4,0);max7311.set(2,5,1); > max7311.set(2,6,0);max7311.set(2,7,0);max7311.set(2,8,1); > max7311.set(2,9,0);max7311.set(2,10,0);max7311.set(2,11,1); > max7311.set(2,12,0);max7311.set(2,13,0);max7311.set(2,14,1); > lcdext.clear();lcdext.print("Licht Wohnzimmer"); > lcdext.line(2);lcdext.print("Lampen Kombi 3"); > global.LA1=3;global.LA2=3;global.LA3=3;global.LA4=3;global.LA5=3;global.aus232=4;sleep 500;continue;} > > if global.Menu==2 // Westseite alles Rolladen AUF ************************************ > {max7311.set(1,2,1);max7311.set(1,4,1);lcdext.clear(); > lcdext.print("Westseite");lcdext.line(2);lcdext.print("Rolladen AUF"); > sleep 500;max7311.set(1,2,0);max7311.set(1,4,0);sleep 500;continue;} > > if global.Menu==3 // Heizdecke ausschalten ************************************** > {max7311.set(6,0,0);max7311.set(6,1,1); > lcdext.clear();lcdext.print("Heizdecke");lcdext.line(2);lcdext.print("ausgeschaltet"); > sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 7) // Ausführen bei Drücken von 7 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 {max7311.set(2,15,1); > max7311.set(2,0,0);max7311.set(2,1,1);max7311.set(2,2,0); > max7311.set(2,3,0);max7311.set(2,4,0);max7311.set(2,5,1); > max7311.set(2,6,0);max7311.set(2,7,0);max7311.set(2,8,1); > max7311.set(2,9,0);max7311.set(2,10,0);max7311.set(2,11,1); > max7311.set(2,12,0);max7311.set(2,13,1);max7311.set(2,14,0); > lcdext.clear();lcdext.print("Licht Wohnzimmer"); > lcdext.line(2);lcdext.print("Lampen Kombi 4"); > global.LA1=2;global.LA2=3;global.LA3=3;global.LA4=3;global.LA5=2;global.aus232=4;sleep 500;continue;} > > if global.Menu==2 // Nordseite alles Rolladen ZU ************************************* > {max7311.set(1,9,1);max7311.set(0,3,1);max7311.set(0,15,1);max7311.set(0,13,1);lcdext.clear(); > lcdext.print("Nordseite");lcdext.line(2);lcdext.print("Rolladen ZU");sleep 500; > max7311.set(1,9,0);max7311.set(0,3,0);max7311.set(0,15,0);max7311.set(0,13,0);sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 8) // Ausführen bei Drücken von 8 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 {max7311.set(2,15,1); > max7311.set(2,0,0);max7311.set(2,1,0);max7311.set(2,2,1); > max7311.set(2,3,0);max7311.set(2,4,0);max7311.set(2,5,1); > max7311.set(2,6,0);max7311.set(2,7,1);max7311.set(2,8,0); > max7311.set(2,9,0);max7311.set(2,10,0);max7311.set(2,11,1); > max7311.set(2,12,0);max7311.set(2,13,0);max7311.set(2,14,1); > lcdext.clear();lcdext.print("Licht Wohnzimmer"); > lcdext.line(2);lcdext.print("Lampen Kombi 5"); > global.LA1=3;global.LA2=3;global.LA3=2;global.LA4=3;global.LA5=3;global.aus232=4;sleep 500;continue;} > > if global.Menu==2 // Nordseite alles Rolladen AUF ************************************ > {max7311.set(1,8,1);max7311.set(0,2,1);max7311.set(0,14,1);max7311.set(0,12,1);lcdext.clear(); > lcdext.print("Nordseite");lcdext.line(2);lcdext.print("Rolladen AUF");sleep 500; > max7311.set(1,8,0);max7311.set(0,2,0);max7311.set(0,14,0);max7311.set(0,12,0);sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 9) // Ausführen bei Drücken von 9 *********************************** > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 { // LED am Brunnen einschalten ************************************* > max7311.set(5,1,1);global.LED6=1;global.aus232=4; > lcdext.clear();lcdext.print("Licht Wohnzimmer");lcdext.line(2);lcdext.print("LED Brunnen EIN"); > sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 0) // Ausführen bei Drücken von 0 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==1 { // LED am Brunnen ausschalten ************************************* > max7311.set(5,1,0);global.LED6=0;global.aus232=4; > lcdext.clear();lcdext.print("Licht Wohnzimmer");lcdext.line(2);lcdext.print("LED Brunnen AUS"); > sleep 500;continue;} > > sleep 500;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 10) // Ausführen bei Drücken von F1 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==2 // Rolladen Zentral AUF ********************************************* > {max7311.set(1,8,1);max7311.set(0,2,1);max7311.set(0,14,1);max7311.set(0,12,1);lcdext.clear(); > lcdext.print("Zentral");lcdext.line(2);lcdext.print("Rolladen AUF");sleep 500; > max7311.set(1,8,0);max7311.set(0,2,0);max7311.set(0,14,0);max7311.set(0,12,0);sleep 1000; > max7311.set(0,6,1);max7311.set(0,0,1);max7311.set(0,8,1);sleep 500; > max7311.set(0,6,0);max7311.set(0,0,0);max7311.set(0,8,0);sleep 1000; > max7311.set(0,10,1);max7311.set(0,4,1);max7311.set(1,0,1);sleep 500; > max7311.set(0,10,0);max7311.set(0,4,0);max7311.set(1,0,0);sleep 1000; > max7311.set(1,2,1);max7311.set(1,4,1);sleep 500; > max7311.set(1,2,0);max7311.set(1,4,0);sleep 500;continue;} > > sleep 500;} > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 11) // Ausführen bei Drücken von F2 ********************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==2 // Rolladen Zentral ZU ********************************************** > {max7311.set(1,9,1);max7311.set(0,3,1);max7311.set(0,15,1);max7311.set(0,13,1);lcdext.clear(); > lcdext.print("Zentral");lcdext.line(2);lcdext.print("Rolladen ZU");sleep 500; > max7311.set(1,9,0);max7311.set(0,3,0);max7311.set(0,15,0);max7311.set(0,13,0);sleep 1000; > max7311.set(0,7,1);max7311.set(0,1,1);max7311.set(0,9,1);sleep 500; > max7311.set(0,7,0);max7311.set(0,1,0);max7311.set(0,9,0);sleep 1000; > max7311.set(0,11,1);max7311.set(0,5,1);max7311.set(1,1,1);sleep 500; > max7311.set(0,11,0);max7311.set(0,5,0);max7311.set(1,1,0);sleep 1000; > max7311.set(1,3,1);max7311.set(1,5,1);sleep 500; > max7311.set(1,3,0);max7311.set(1,5,0);sleep 500;continue;} > > sleep 500;} > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 12) // Ausführen bei Drücken von F3 ******************************* > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > > if systemzeit.dow==0 {t="Sonntag";} > if systemzeit.dow==1 {t="Montag";} > if systemzeit.dow==2 {t="Dienstag";} > if systemzeit.dow==3 {t="Mittwoch";} > if systemzeit.dow==4 {t="Donnerstag";} > if systemzeit.dow==5 {t="Freitag";} > if systemzeit.dow==6 {t="Samstag";} > if systemzeit.dow==7 {t="Sonntag";} > lcdext.clear();sleep 5;lcdext.print(t); > > t="";str.putint(t,systemzeit.Uhrzeit); > lcdext.line(2);lcdext.print(t); > sleep 500;} > > > > > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 13) // Ausführen bei Drücken von C ******************************** > {plm.beep(plm.TONE_C2); global.Menu=0;sleep 50; plm.beep(plm.TONE_OFF); > lcdext.clear();sleep 5;lcdext.print("C-Control ist"); > lcdext.line(2);lcdext.print("betriebsbereit"); > sleep 500;continue;} > > > > //**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//**//** > if(code == 14) // Ausführen bei Drücken von ENTER **************************** > {plm.beep(plm.TONE_C2); sleep 50; plm.beep(plm.TONE_OFF); > if global.Menu==0 {global.Menu=1;lcdext.clear();sleep 5;lcdext.print("Menueauswahl"); > lcdext.line(2);lcdext.print("Licht Wohnzimmer");sleep 500;continue;} > if global.Menu==1 {global.Menu=2;lcdext.clear();sleep 5;lcdext.print("Menueauswahl"); > lcdext.line(2);lcdext.print("Rolladen");sleep 500;continue;} > if global.Menu==2 {global.Menu=3;lcdext.clear();sleep 5;lcdext.print("Menueauswahl"); > lcdext.line(2);lcdext.print("Funktionen");sleep 500;continue;} > if global.Menu==3 {global.Menu=0;lcdext.clear();sleep 5;lcdext.print("Menueauswahl"); > lcdext.line(2);lcdext.print("nicht belegt 2");sleep 500;continue;} > sleep 500; > } > > }} > > > > Nimmst Dir halt raus was Du brauchst, im Beispiel ist ein Menü. > Aber den Sinn kann man hoffentlich rauslesen. > > Rene Hallo Rene! Vielen Dank für die Hilfe - war leider beruflich solange unterwegs konnte mich noch nicht bedanken. Ich glaube jetzt werde ich es schaffen Danke nochmals, schönes Wochenende! Walter | ||
Antwort schreiben Antworten: |