Hi guys and gals,
Can someone offer some suggestions as to how to determine if when setting the on / off times for some lights, the lights should be on at the time of applying the settings.
I'm using a 1307 RTC and have the following within the code
If the current time is say 12:15 and I set the lights to come on at say 12:20 and then go off at 12:25 it works perfectly, however, if the current time is 12:22 and I try to set the time the lights remain off... presumably until 12:20 the next day. I'm looking for a simple way for the code to work out if the time of setting the lighting period whether or not the lights should be on or not.Code:If lightsetHR[fn]=timeH and lightsetMN[fn]=timeM then 'compare value of each set time to current time and if matches if fn=0 then Lights1 = 1 if fn=1 then Lights2 = 1 'turn on those light LCDOut $FE, $94+9,"Lights ON" endif If lightoffHR[fn]=timeH and lightoffMN[fn]=timeM then 'compare value of each start time to current time and if matches if fn=0 then Lights1 = 0 if fn=1 then Lights2 = 0 'turn off the light if lights1 = 0 and lights2 = 0 then LCDOut $FE, $94+9," " endif
Here is the section where the user sets the on/off times
Code:Lighting: Lighton: Lcdout $FE,2 LCDOUT $FE,$80,"Set On Time For " IF H_butt = 0 THEN GOSUB IncHours IF M_butt = 0 THEN GOSUB IncMinutes lightsetHR[fn]=Hours lightsetMN[fn]=Minutes if viv >=2 then viv =2 LCDOUT $FE,$C0,"Light Circuit ",#viv lcdout $FE,$94,#lightsetHR[fn] DIG 1,#lightsetHR[fn] DIG 0,":",#lightsetMN[fn] DIG 1,#lightsetMN[fn] DIG 0 pause 200 If S_butt = 0 then pause 250 fn = fn +1 viv = viv+1 hours = 0 minutes = 0 endif If fn > 1 then LCDOUT $FE,1 viv=1 fn=0 goto lightoff endif goto lighton lightoff: Lcdout $FE,2 LCDOUT $FE,$80,"Set Off Time For " IF H_butt = 0 THEN GOSUB IncHours IF M_butt = 0 THEN GOSUB IncMinutes lightoffHR[fn] = Hours lightoffMN[fn] = Minutes if viv >=2 then viv =2 LCDOUT $FE,$C0,"Light Circuit ",#viv lcdout $FE,$94,#lightoffHR[fn] DIG 1,#lightoffHR[fn] DIG 0,":",#lightoffMN[fn] DIG 1,#lightoffMN[fn] DIG 0 pause 200 If !S_butt then pause 250 fn = fn +1 viv = viv +1 hours = 0 minutes = 0 endif If fn >=2 then LCDOUT $FE,1 goto mainmenu endif goto lightoff




Bookmarks