Давно не заглядывал а тут ТАКОЕ!!! Молодцы. Но это из лирики. Из того, что первое приходит в голову - это НЕ всегда линейный алгоритм Событие-Действие. На практике почти ВСЕГДА между этими понятиями живет УСЛОВИЕ.
Например. Хотим закрыть шторы на окнах. Как будто все очевидно. Нажали кнопку (событие1), устройство начало закрывать штору(действие1) и опрашивать концевик (событие2) чтобы остановиться (действие2). А если само окно в этот момент открыто (условие1)и мы хотим получить от устройства не закрывания шторы в этом случае, а сигнал об открытом окне(действие3)? В этом случае уже на событие 1 нам нужна реакция не как действие 1, а как действие 3, потому, что есть условие 1.
Автомобильная сигнализация ярчайший пример каскадируемых ЕСЛИ. Если в момент нажатия на кнопку постановки под охрану дверь авто была открыта, то эта линия не берется под охрану, если датчик движения срабатывал, то охрана включается с задержкой, если включен бесшумный режим, то она отвечает только световой сигнализацией и т.д. И набор вариантов ДЕЙСВИЕ многообразен в зависимости от условий и к каждому из них можно "прибежать" всего от одного события но в зависимости от разных условий.
Эту опцию нужно добавлять как минимум. Возможно еще циклическое повторение, может быть еще что-то, без чего будет дальше очень сложно.
Мне кажется нужно"на берегу" осознавать что проект Zichip это по сути микропроцессорный компилятор примитивного языка программирования. Создав минимальный набор команд языка и написав для них программу обработчик на МК мы по сути и получим то, что хотим.
|