State machines are a superb formalism for specifying and implementing event-driven systems. The UML statecharts represent the current state of the art instate machine theory and notation. This class shows practical ways of usingstatecharts in designs, to help produce efficient and maintainable systems withwell-understood behavior, rather than creating “spaghetti” code littered withconvoluted ifs and elses. Part 1 presents the essence of statecharts, how topractically design them, and how to code them directly in C without sophisti-cated design automation tools. Continue on to read Part 2 of Practical Statecharts for Embedded Systems: “Practical Statecharts for Embedded Systems Part 2: State Machine Framework.”