Как стать автором
Обновить
9
0

Пользователь

Отправить сообщение

Графическое программирование конечных автоматов для Arduino. Часть 2

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.3K

Продолжая тему применения конечных автоматов в Arduino, расширим представления о возможностях программного комплекса V2S. На сей раз используем классику - задачу управления светофором. С аппаратной точки зрения, это три светодиода, подключенных к свободным пинам микроконтроллера, но вот с программной все гораздо интереснее...

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии6

Графическое программирование конечных автоматов для Arduino. Часть 1

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров9.7K

Как только сложность программы выходит за пределы "Hello Word!", у начинающих ардуинщиков появляются проблемы. Самая тяжелая из них - удержать в голове структуру программного кода. Нельзя сказать, что у опытных программистов встраиваемых систем этой проблемы нет. Достаточно попытаться реанимировать собственный проект двухлетней давности, если он недостаточно документирован, то включиться в работу будет очень трудно.

Решение существует - представление в графическом виде. При этом программа разбивается на секции кода, которые имеют одну точку входа и одну точку выхода. Эти секции образуют состояния или иначе вершины, по терминологии теории графов. Вершины соединяются между собой условными переходами, так же содержащими программный код. Получается наглядно и очень надежно.

Все это хорошо, но новичку просто лениво. Зачем что-то рисовать, если того же результата можно добиться несколькими строчками кода? Ответ: макрокоманды. Такие, например, как WAIT(Time,Counter), она позволяет с легкостью организовать временную задержку. И это будет вовсе не Delay(Time) от Arduino, которая остановит выполнение всего остального пользовательского кода. Нет. По предоставляемым возможностям ближайшей аналогией будет RTOS - операционная система реального времени. Если один автомат замер в ожидании отсчета времени, то остальные автоматы проекта будут продолжать работать.

Рассмотрим практическое использование графических конечных автоматов под Arduino на примере часов-метеостанции.

Читать далее
Всего голосов 13: ↑12 и ↓1+14
Комментарии13

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Embedded Software Engineer
Senior
От 5 000 ₴