Pull to refresh
8
0
Send message

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

Level of difficultyMedium
Reading time5 min
Views3.2K

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

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments6

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

Level of difficultyMedium
Reading time8 min
Views9.7K

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

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

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

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

Читать далее
Total votes 13: ↑12 and ↓1+14
Comments13

Information

Rating
Does not participate
Registered
Activity

Specialization

Embedded Software Engineer
Senior
From 5,000 ₴