Я не уверен, как действовать по проекту, когда речь идет о разработке кода.Code Design - конечный автомат или процедурный код
Подумайте о устройстве, которое должно контролировать значение напряжения с помощью аналого-цифрового преобразователя и иногда должно регулировать его выход pwm, если измеренные значения оставляют определенные пределы. Устройство также имеет интерфейс, например. Светодиоды и кнопки и потенциометр.
Если пользователь изменяет значение потенциометра, устройству все равно придется контролировать напряжение, пока устройство ожидает ввода пользователем. И еще одна проблема заключается в том, что устройству придется действовать быстро (отключив драйвер для питания в течение 10 мс). Вы бы порекомендовали конечный автомат или, скорее, процедурное программирование?
Насколько сложно было бы создать государственную машину в C? Было бы достаточно быстро, если контроллер (STM32F0) должен прочитать 4 входа АЦП и сгенерировать 2 PWM?
Если вы рассматриваете дизайн конечного автомата, рассмотрите [QP Active Object Framework] (http://state-machine.com/). Он имеет кривую обучения, но, на мой взгляд, это того стоит. – kkrambo