Re: Zeitschaltuhr mit Serialzeit Kategorie: Programmierung (von ChristianS - 8.04.2010 21:05) | |
Als Antwort auf Re: Zeitschaltuhr mit Serialzeit von nitraM - 8.04.2010 20:08
| |
> > > Hallo Christian > > > > > > wie wäre es so: > > > > > > > > > if tein > taus // Schaltzeit über 0:00Uhr hinaus > > > { einschaltzeit = 86400 - tein + taus; // Gesamteinschaltzeit ermitteln > > > if einschaltzeit >= min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht > > > {if time >= tein or time < taus // prüfen auf Uhrzeit "ein" => wichtig _oder_ ! > > > { einschalten... > > > } > > > } > > > } > > > else > > > { einschaltzeit = taus - tein; // Gesamteinschaltzeit ermitteln > > > if einschaltzeit >= min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht > > > {if time >= tein and time < taus // prüfen auf Uhrzeit "ein" => wichtig _und_ ! > > > { einschalten... > > > } > > > } > > > > > > > > > nitraM > > > > Hallo nitraM, > > danke für die Antwort, aber das kann ich so nicht machen. Ich darf nur an einer Stelle einschalten, > > sonst kriege ich das Ausschalten nicht hin. Es gibt da noch einen Taster, der die ganze Automatik bei > > der ersten Betätigung aushebelt, aber nur während der "Zeitschalter-ein"-Phasen. Ansonsten arbeitet > > der Taster wie ein Schalter mit einer auto-aus-Funktion nach zwei Stunden. Die setzt dann das "busy" > > wieder zurück und das Licht geht aus. > > > > Hallo Christian, > was meinst du mit "nur an einer Stelle einschalten" ? > Das ist doch nur die Bedingung Zeitschaltuhr! > > > > byte Licht_per_zeitschaltuhr_an; // Zwischenspeicher :-) > Licht_per_zeitschaltuhr_an = 0; // Variable wird immer zu Beginn gelöscht > > if tein > taus // Schaltzeit über 0:00Uhr hinaus > { einschaltzeit = 86400 - tein + taus; // Gesamteinschaltzeit ermitteln > if einschaltzeit >= min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht > {if time >= tein or time < taus // prüfen auf Uhrzeit "ein" => wichtig _oder_ ! > {Licht_per_zeitschaltuhr_an = 1; // wenn die Bedingung erfüllt => merken! > } > } > } > else > { einschaltzeit = taus - tein; // Gesamteinschaltzeit ermitteln > if einschaltzeit >= min_einschaltzeit // nur weiter prüfen wenn min. Einschaltzeit erreicht > {if time >= tein and time < taus // prüfen auf Uhrzeit "ein" => wichtig _und_ ! > { Licht_per_zeitschaltuhr_an = 1; // wenn die Bedingung erfüllt => merken! > } > } > > // so jetzt dein Code ... > if( Licht_per_zeitschaltuhr_an == 1 or Schalter(4,1) > { > if schalter_busy[4] and Licht_per_zeitschaltuhr_an == 1 > gartenlicht_off=-1; //Ausschaltzeit löschen > max7311.set(0,Relais7,1); > } > else > { > max7311.set(0,Relais7,0); > } > > > > nitraM > Hi nitraM, das muss ich erst mal sacken lassen,aber heute kriege ich das nicht mehr auf die Kette, vielen Dank für die Unterstützung ich werde asap Feedback geben. Christian | |
Antwort schreiben Antworten: |