Здравствуйте, Уважаемый Basil!
Mon Nov 14 2005 14:47, Basil Burtakov wrote to Andy Mozzhevilov:
AM>> в определенной комбинации, я придумать не могу.
BB> Hапример есть 3 релейных сигнала. Приходят асинхронно от внешних датчиков BB> (от объекта управления). Сигналы такие: температура превысила порог, BB> давление привысило порог и заглушка открыта-закрыта. Задачу надо BB> запускать если два сигнала true а третий false.
BB> Типовое решение - в прерываниях устанавливаем семафоры (флаги). А задача BB> ждет нужной комбинации. Причем сложность лог. ф-ции может быть и больше. BB> Hе зря у Лабросса до 32 флагов.
Самое простое и надежное видится так- задача сканирования, которая с максимально возможным периодом времени просто опрашивает все три сигнала (полинг без всяких прерываний!) и сравнивает с порогами. Когда выполняется нужное условие - посылает ОДИH семафор на запуск другой, аварийной задаче. Затем останавливает сканирование и переходит в режим ожидания перезапуска.
Всего Вам Хорошего Ольга