QP state machine framework for Arduino

The book "Practical UML Statecharts in C/C++, Second Ed." (PSiCC2) has not been written with the beginner in mind. As the author of this book I just don't want anybody to get disappointed, especially because Arduino itself is targeted for non-specialists in embedded software development.

So, before you rush to buy the book based on some buzzwords, like "UML", "statecharts", or "ARM Cortex-M3", please play with the provided examples on your Arduino (see Arduino Playground - QP-nano framework) and take a closer look at the code. You can also read the introduction and the first chapter of the PSiCC2 book online at http://www.state-machine.com/psicc2/PSiCC2_excerpts.pdf. This first chapter is designed as a quick tutorial.

Event-driven programming can feel very unnatural for many people. That's alright. You have other alternatives, like the traditional RTOS, the venerable superloop with polling, protothreads (which are specifically designed to avoid state machines), and so on.

On the other hand, some studies indicate that event-driven programming introduced early in the teaching of software development can be beneficial (see "Event-driven Programming can be Simple Enough for CS 1" at http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.33.9431). So, if you like the event-driven approach, you would need an event-driven framework. QP is one of such frameworks and the PSiCC2 book is the ultimate resource for it.