A disciplined approach to programming embedded systems, emphasizing a time-oriented computation model of state machines for creating robust real-time multi-process C programs for microcontrollers. Includes a time-limited license to use the RI Tools for learning of the PES programming concepts. See www.programmingembeddedsystems.com for further info and electronic version.