Среда, 23 марта 2011 22:30
Реализация конечного автомата (state machine)
Мартин Гомез
Преобразование конечного автомата в программу может быть достаточно простым, если вы будете следовать советам опытного практика.
Многие программы для встраиваемых систем зачастую лучше всего реализуются в виде конечного автомата. К таким программам можно отнести приложения выполняющие последовательность действий и приложения обрабатывающие входные сигналы в зависимости от режима.
Эта статья описывает простой подход к созданию конечных автоматов для встраиваемых систем. За последние 15 лет я применял данный подход при разработке нескольких десятков систем, включая пользовательский интерфейс, коммуникационные протоколы, механизм транспортировки кремниевых пластин и программное обеспечение для беспилотных летательных аппаратов.
Published in
Программирование AVR
Воскресенье, 14 марта 2010 14:23
Учебный курс. Опрос матричной клавиатуры. Пример использования автомата (State Machine)
Для ввода цифровой и буквенной информации в приложениях на базе микроконтроллеров используются клавиатуры. Клавиатура представляет собой блок из нескольких кнопок, объединенных конструктивно и связанных между собой электрически по матричной схеме. В этой статье мы рассмотрим алгоритм опроса матричной клавиатуры и разберем пример его программной реализации.
Published in
Программирование AVR
Воскресенье, 24 января 2010 21:55
Организация программ. Событийная система (Event driven system)
Вопросы организации программ встраиваемых систем довольно скудно освещены в отечественной литературе. Поэтому у начинающих программистов микроконтроллеров рано или поздно возникают проблемы при написании больших проектов.
Стандартный подход к построению микроконтроллерных программ сводится к использованию бесконечного цикла, внутри которого происходит опрос флагов, и вызываются разные функции. Однако, такая программа не наглядна, и ее сложно модифицировать.
Организация программы в виде событийной системы (event driven system) лишена этих недостатков, позволяет реализовывать сложную логику, и не так “тяжеловесна” как операционные системы (RTOS). В этой статья мы разберемся с принципом ее работы и рассмотрим простой вариант ее реализации.
Published in
Программирование AVR