Re: Zeitschaltuhr mit Serialzeit Kategorie: Programmierung (von Andreas - 12.04.2010 9:45) | |
Als Antwort auf Re: Zeitschaltuhr mit Serialzeit von ChristianS - 9.04.2010 10:25
| |
Hallo Christian, ich habe versucht nicht deinen Code zu verändern, sondern neu anzufangen. Wie schon vorher gesagt würde ich Ausschaltzeiten die nach 0:00 Uhr enden einen Wert über 86400 geben und diesen dann über die Funktion â??neuerTagâ?? nach Mitternacht anpassen. So kannst du auch schnell ein Sonderprogramm laufen lasen wenn mal für z.B. 3 Tage = 259200 Sek. was anders laufen soll. Wenn du das nicht willst, kannst du es ganz leicht anpassen. Die Berechnung ob das Licht überhaupt eingeschaltet werden soll (zu kurze Einschaltdauer vermeiden) würde ich in die Berechnung über die Ein- und Ausschaltzeiten reinnehmen. Soll nicht eingeschaltet werden auto = 1, sonst auto = 2. GruÃ? Andreas byte auto; byte tag_neu; long aus_normal; long ausschalten; long dauer; function Gartenlicht () { if auto > 1 and timeserial > (aus_normal - dauer) and timeserial < aus_normal { max7311.set(0,7,1); ausschalten = aus_normal; auto = 4; } if auto > 1 and ausschalten + 1800 > aus_normal - dauer { ausschalten = aus_normal;} //manuell eingeschaltetes Licht nur aus wenn nicht in 30 Min wieder ein //auto > o wird nur benötig, wenn auch mal alles auf manuell laufen soll if auto > 0 and timeserial > ausschalten { max7311.set(0,7,0); } } function Taster () { if auto == 4 {auto = 1;} max7311.toggle(0,7); ausschalten = timeserial + 7200; } function neuerTag () { if timeserial < 10 and tag_neu == 0 { if aus_normal > 86399 { aus_normal = aus_normal - 86400;} if ausschalten > 86399 { ausschalten = ausschalten - 86400;} tag_neu = 1; //wird bei deinen Berechnungen um 4:00 wieder auf 0 gesetzt } | |
Antwort schreiben Antworten: |