Среда, 23 марта 2011 22:30
Реализация конечного автомата (state machine)
Мартин Гомез
Преобразование конечного автомата в программу может быть достаточно простым, если вы будете следовать советам опытного практика.
Многие программы для встраиваемых систем зачастую лучше всего реализуются в виде конечного автомата. К таким программам можно отнести приложения выполняющие последовательность действий и приложения обрабатывающие входные сигналы в зависимости от режима.
Эта статья описывает простой подход к созданию конечных автоматов для встраиваемых систем. За последние 15 лет я применял данный подход при разработке нескольких десятков систем, включая пользовательский интерфейс, коммуникационные протоколы, механизм транспортировки кремниевых пластин и программное обеспечение для беспилотных летательных аппаратов.
Published in
Программирование AVR
Понедельник, 06 декабря 2010 18:14
Организация программ. Событийная система на таблице
Стандартный подход к написанию программы для микроконтроллера сводится к использованию бесконечного цикла (суперлупа), внутри которого непрерывно опрашиваются флаги и запускаются те или иные функции. Этот подход вполне оправдан для написания небольших программ, но при превышении определенного порога сложности, такая программа становится громоздкой, непонятной и запутанной. Этой ситуации можно избежать, если на начальной стадии разработки оценить сложность программы и выбрать для нее более подходящую форму организации.
Самой ближайшей альтернативой является событийная система. Она не такая тяжеловесная, как операционная, и в то же время позволяет организовать программу в довольно стройную и понятную конструкцию, которую легко наращивать и изменять.
Published in
Программирование AVR