Page 312 - Embedded Microprocessor Systems Real World Design
P. 312
Else (ONOFF was not set, OFF time, change to ON time),
Set ONOFF
HOUR = ONHOTJR
MINUTE = ONMIN (current time = ON time).
If powerfail occurred, switch to normal timing only if
SET button pressed.
If MODE = 0 (powerfail)
If SEFLAG (SET PB pressed),
Clear SEFLAG
Set MODE = 1 (normal timing).
If MODE = 1 (normal timing),
If ONTUG set (ON PB pressed),
Clear ONFLAG.
If Override time = 0:O (OVMIN = OVHOUR = 0),
(User has selected ON override)
Set VOFLAG
Set OVMIN to 30.
Else (Override time > O:O, user has pressed ON while in override),
If VOFLAG (ON pressed in OFF override, cancel override),
Set OVMIN = OVHOUR = 0:O (override time = 0:O)
Else (ON pressed while in ON override, increment time),
Add 30 to override time
If override time = 24:00, set override time to 0.
If OFFLAG set (OFF PB pressed),
Clear OFFLAG.
If Override time = 0:O (OVMIN = OVHOTJR = 01,
(User has selected OFF override)
Clear VOFLAG
Set OVMIN to 30.
Else (Override time > O:O, user has pressed OFF while in override),
If not VOFLAG (OFF pressed in ON override, cancel override),
Set OVMIN = OVHOUR = 0:O (Override time = 0:O)
Else (OFF pressed while in OFF override, increment time),
Add 30 to override time
If override time = 24:00, set Override time to 0.
If SEFLAG (SET PB pressed),
Set MODE = 2 (time set)
Set OVMIN = OVHOUR = 0:O (Override time = 0:O)
Set PRHOTJR = ONHOTJR
Set PRMIN = ONMIN (display ON time)
Set SEMODE = 1 (ON time set).
If MODE = 2 (time set),
If SEFLAG (SET PB pressed, exit time set),
Clear SEFLAG.
If SEMODE = 1 (ON time set),
Appendix A 293