tägliche Ansteuerung Kategorie: Programmierung (von Rene Schulz - 22.12.2011 9:30) | ||
| ||
Hallo Leute, ich habe zwei Probleme mit der Zeitsteuerung. Im unten stehenden Code soll ein Relais, zeitabhängig, geschaltet werden, wenn ich die ausgeklammerte "Testzeit" nehme, dann geht es, nehme ich aber eine andere Zeit geht es nicht mehr. Was mache ich hier falsch? und zum zweiten... Wie muss ich den Code schreiben, damit das Programm jeden Tag abläuft und nicht nur an einem Tag? Danke für Eure Hilfe ich verzweifel langsam :( MfG Rene thread regen { byte port; byte rel; byte hour, min, sec; int state; int time; stports.init(); lcdext.init(); /*******************************************/ /******** ANSTEUERUNG LCD *************/ /*******************************************/ lcdext.line(2); lcdext.print(" TERRA: REGEN"); sleep 500; lcdext.clear(); /*******************************************/ /*********** Zeitschaltuhr Regen ***********/ /********Es wird jeden Tag geschaltet*******/ /*******************************************/ loop { min = system.minute(); wait system.second() != sec; time=system.hour()*100 + system.minute()*100 + system.second(); /**************************************************************/ /******** Zeitdefinition Stunden Minuten Sekunden *************/ /*** Ein 07:30:00 und 17:00:00 Aus 07:30:45 und 17:00:45 ******/ /**************************************************************/ //if time >= 000020 and time <= 000030 or time >= 000110 and time <= 000120 <- Testeinstellung if time >= 220010 and time <= 222555 or time >= 222905 and time <= 230148 stports.setRel(2,1); else stports.setRel(2,0); }; }; hier noch der Mainthread, falls gebraucht... thread main { byte second; int a, b, c; int time; long timeset; stports.LCDlight(1); lcdext.init(); lcdext.clear(); lcdext.print("ZEIT EINSTELLUNG"); lcdext.line(2); lcdext.print("BITTE EINGEBEN"); sleep 2000; lcdext.clear(); lcdext.print(" STUNDE "); sleep 2000; lcdext.clear(); timeset=stkeyb.input (2, 2, 5000); a=timeset; lcdext.clear(); lcdext.print(" MINUTEN "); sleep 2000; lcdext.clear(); timeset=stkeyb.input (2, 2, 5000); b=timeset; c=00; system.settime(a, b, c); lcdext.clear(); lcdext.print("DATE EINSTELLUNG"); lcdext.line(2); lcdext.print("BITTE EINGEBEN"); sleep 2000; lcdext.clear(); lcdext.print(" JAHR "); sleep 2000; lcdext.clear(); timeset=stkeyb.input (4, 4, 5000); a=timeset; lcdext.clear(); lcdext.print(" MONAT "); sleep 2000; lcdext.clear(); timeset=stkeyb.input (2, 2, 5000); b=timeset; lcdext.clear(); lcdext.print(" TAG "); sleep 2000; lcdext.clear(); timeset=stkeyb.input (2, 2, 5000); c=timeset; lcdext.clear(); system.setdate(a, b, c); lcdext.clear(); sleep 2000; lcdext.print("DATE AND TIME"); lcdext.line(2); lcdext.print("ERFOLGREICH"); sleep 2000; lcdext.clear(); loop { second=system.second(); lcdext.line(1); lcdext.time(1); lcdext.line(2); lcdext.date(1); sleep 500; lcdext.goto(1,2); lcdext.put(' '); lcdext.goto(1,5); lcdext.put(' '); wait second!=system.second(); { run lichtsteuerung.licht; run regensteuerung.regen; } } } | ||
Antwort schreiben Antworten: Re: tägliche Ansteuerung (von Jörg Hansen - 22.12.2011 21:12) Re: tägliche Ansteuerung (von Rene - 23.12.2011 13:28) Re: tägliche Ansteuerung (von Rene - 26.12.2011 13:14) Re: tägliche Ansteuerung (von André H. - 3.01.2012 1:25) |