і
МИКРОКОНТРОЛЛЕРЫ
\
Да-да! Это действительно
ВСЕ!
Результат кажется потрясающим -
особенно на фоне того, что нам
пришлось проделать с автоматом,
запрограммированным по эчуКсИ-
технологии. По большому счету мы
программу
и пальцем не тронули
- просто
заменили старую табли-
цу автомата новой,
да дописали
пару-тройку малюсеньких подпрог-
рамм. Вот где сказывается преиму-
щество автоматной технологии - не
в том,
как быстро мы напишем
первый вариант
автомата, а в том,
с
какой легкостью мы можем из-
менить уже написанную про-
грамму.
Ведь одно дело - перело-
патить вдоль и поперек все хитрос-
плетение проверок условий, пере-
ходов и действий, и совсем другое
- просто “переписать красивым по-
черком” автоматную таблицу, не
особенно даже задумываясь над
тем, что ты делаешь.
Всё вышесказанное и вышена-
писанное кажется каким-то ловким
фокусом, который автор проделал
над читателем, но нет - никакого
фокуса нет! В самом деле, посмот-
рите, ка к работает интерпретатор
автомата - если текущ ее состоя-
ние автомата равно
какому-то-там
состоянию и
какая-то-там
подпрог-
рамма проверки
чего-то-там
сказа-
ла, что
чего-то-там
имеет место, то
состояние автомата нужно изме-
нить на
какое-то-там
новое, а та к-
же выполнить
какую-то-там
подпрог-
рамму, которая
что-то-там-такое
сделает! Что в этой работе специфи-
чески “торшерного”, например?! Та-
кому интерпретатору вообще нет ни-
какой разницы, пирожки ли печь,
или управлять прокатным станом.
Кстати, теперь можно дать и пояс-
нения относительно одного коммен-
тария автора - когда он отмечал,
что вместо команды
шоу %аЗ,%б7,
следующей за командами
1ба1
и
ИаЬ,
можно использовать и команду
тоу| %аЗ,4,
но лучше этого не де-
лать. Если бы мы вставили в это
место команду
тоу1,
то при любом
изменении таблицы автомата эту
команду тоже пришлось бы доволь-
но часто изменять (если бы изме-
нилось число строк автом атной
таблицы). С командой
шоу
даже
этого делать не надо, интерпрета-
тор с ее помощью сразу же сам
определит, сколько реально строк
содержит автоматная таблица, и
вносить в
интерпретатор
какие-
либо изменения не потребуется
больше
никогда.
Подведем итог.
..
Техника автоматного програм-
мирования - одна из наиболее эф-
фективных техник программирова-
ния микроконтроллеров,пригодная
в первую очередь для реализации
задач управления (а микроконтрол-7
леры в большинстве практических
случаев используются именно для
управления конструкцией, а не для
обработки сигнала). Главное ее до-
стоинство - возможность
таблич-
ного
программирования микрокон-
троллера, когда мы просто состав-
ляем автоматную таблицу по разра-
ботанному графу переходов, а код
интерпретатора автоматной табли-
цы просто переносим без измене-
ний из конструкции в конструкцию.
Еще одно достоинство автоматно-
го программирования - простота:
по автоматной таблице мы можем
легко восстановить логику работы
устройства и/или внести в нее не-
обходимые изменения. Делать это
с устройством, алгоритм управле-
ния которым разбросан по всей про-
грамме, намного тяжелее.
Завершая эту статью, неболь-
шое “домашнее задание”: запрог-
раммировать на основе програм-
мы-интерпретатора “умны й” тор-
шер, который ведет себя следую-
щим образом:
1. Если при выключенной лам-
почке дернуть за веревочку, тор-
шер включается на одну минуту,
после чего пять раз мигает (мига-
ние - по секунде на вспыш ку), и
затем автоматически выключается
(режим временного включения).
2. Если в то время, когда тор-
шер горит, дернуть за веревочку,
торш ер выключается досрочно.
3. Если в то время, когда тор-
шер начал мигать, дернуть за ве-
ревочку, торш ер перестает мигать
и горит уже постоянно, до тех пор,
пока его не выключат, дернув за
веревочку.
4. Если при включении торш е-
ра дернуть за веревочку дважды
(н а по д о б и е
д в о й н о го
щ ел чка
мыши), торшер включается и горит
постоянно, пока его не выключат,
дернув за веревочку. Для того, что-
бы считать дергание веревочки
двойным, будем считать, что вто-
рое дерганье должно произойти не
позднее чем через 0,5 сек после
первого.
5. Если торшер горит постоян-
но, дважды дернув за веревочку,
его переводят в режим автомати-
ческого погасания через минуту.
О б язател ьное требование к
программе -
не изменять
интер-
претатор автомата: все возможно-
сти “умного" торшера должны быть
реализованы через автоматную
таблицу и соответствующие малень-
кие подпрограммы! Не смущайтесь
размеров автоматной таблицы -
устройства с такой сложной логи-
кой простыми не бывают.
И, напоследок, “крамольный"
вопрос - для чего нужна эчуИсИ-тех-
нология, если интерпретатор дает
такие великолепные результаты?
ЭчуИсИ-технологця тоже нужна и ча-
сто применяется, потому что у нее
есть один неоспоримый плюс - ско-
рость работы автомата, запрограм-
мированного по эчуйсИ-технологии,
обычно
на порядок
выш е, чем ин-
терпретатора автоматной таблицы
(как всегда, за удовольствие при-
ходится платить, и интерпретатор
расплачивается скоростью работы
за компактность, переносимость и
простоту модификации). Конечно,
в радиолю бител ьской практике
сложно представить себе задачи, в
которых требуется экономить каж -
дую микросекунду, но если такая
н е о б хо д и м о сть
в о зн и кн е т,
то
эчуйсИ-технология - реальный спо-
соб ее решения. Можно даже поре-
комендовать такой способ - внача-
ле реализовывать автомат в виде
интерпретатора, а затем, после
отладки программы , переписать
его в стиле эчуКсИ-технологии.
В следую щ ей статье цикла будут
рассмот рены ещ е д в е техники п р о -
гр ам м ирования - работа с преры -
ваниям и и вирт уальные таймеры.
--------------------
1*М
Родиолюбитель - 10/2005 |
предыдущая страница 41 Радиолюбитель 2005-10 читать онлайн следующая страница 43 Радиолюбитель 2005-10 читать онлайн Домой Выключить/включить текст