Page 310 - Embedded Microprocessor Systems Real World Design
P. 310

Reset logic:
                  Turn all display digits off.
                  Set mode to power up.
                  Clear all variables.
                  Set ON time to 8:30.
                  Set OFF time to 8:OO.
                  Set current time to ON time. (This will turn the pump on.)
                  Start of  background Loop:
                    If  counting ON time or if  in ON override,
                     If  water level OK, turn pump on.
                    If  counting OFF time, or if  in OFF override
                    or if  water level low, turn pump off.
                    If  time rolled over from ON to OFF,
                     Switch to oounting ON time.
                     Set current time to OFF time.
                    If  time rolled over from OFF to ON,
                     Switch to counting ON time.
                     Set current time to ON  time.
                    If  mode is powerfail,
                     If  set pushbutton  pressed, set mode to normal timekeeping.
                    If  mode is normal timekeeping,
                     If  ON pushbutton pressed  (ON  override)
                      If  override time = 0:O (first button  press),
                       Set to ON override mode
                       Set override time to 0:30.
                      If  override time was > O:O,
                       If  in ON override,
                        add 30 to override time
                        If  override time = 24:0, set override time to 0:O.
                       If  in OFF override (ON  pressed while in OFF override),
                        Set override time to 0:O (exit override).
                     If  OFF pushbutton pressed  (OFF override)
                      If  override time = 0:O (first button press),
                       Set to OFF override mode
                       Set override time to 0:30.
                      If  override time was > O:O,
                       If  in OFF  override,
                        add 30 to override time
                        If  override time = 24:00, set override time to 0:O.
                       If  in ON override (OFF  pressed while in ON override),
                        Set override time to 0:O (exit override).
                     If  SET pushbutton pressed,
                      Set mode to time set
                      Display ON time
                      Set override time to 0:O.


                Appendix A                                                           291
   305   306   307   308   309   310   311   312   313   314   315