Page 311 - Embedded Microprocessor Systems Real World Design
P. 311
If mode is time set,
If SET pushbutton pressed,
Set mode normal timing
If we were setting ON time, set ON time to displayed time.
If we were setting OFF time, set OFF time to displayed time.
If ON button pressed,
If setting ON time, increment displayed time.
If setting OFF time,
set OFF time to displayed time
display ON time.
If OFF button pressed
If setting OFF time, increment displayed time.
If setting ON time,
set ON time to displayed time
display OFF time.
End of background loop.
Example System Software Pseudocode
Reset Processing
Turn all displays off.
Set MODE = 0 (power up mode).
Initialize variables to 0.
Set ON time to 8:30 (ONHOUR = 8, ONMIN = 30).
Set OFF time to 8:00 (OFFHOUR = 8, OFFMIN = 30).
Set current time to ON time (HOUR = ONHOUR, MINUTE = ONMIN, ONOFF = 1).
Background Loop
If ONOFF set (ON timing),
OR if in override mode and VOFLAG set (ON override mode),
If MTFLAG = 0 (water level ok), Turn pump on.
If not ONOFF (Off timing),
OR if override time > 0 and VOFLAG not set (OFF override),
Turn pump off.
If TFLAG (time rolled over),
Clear TFLAG.
If ONOFF (ON timing, need to change to OFF timing),
Clear ONOFF
HOUR = OFFHOUR
MINUTE = OFFMIN (current time = OFF time).
292 Appendix A