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
   306   307   308   309   310   311   312   313   314   315   316