В осцилляторе генерируется фаза (Ph) от -1 до 1.
Этот промежуток разделён на интервалы: -1...-0.5, -0.5...0, 0...0.5, 0.5...1
Выходной сигнал должен принимать разные значения в зависимости от того, в каком интервале находится фаза:
Вот скриншот реализации этой штуки:
Она работает, но функции F1, F2, F3, F4 просчитываются всегда, независимо от значения фазы.
Я хочу, чтобы каждая фукция просчитывалась только тогда, когда фаза находится в нужном интервале, потому что они ресурсоёмкие.
Я попробовал поставить ещё по роутеру на них, но почему-то эта реализация не работает:
Хотя по идее роутер должен отсоединять F1...4 от триггеров, если фаза не в нужном интервале. Когда я руками отсоединяю их, нагрузка на ЦП падает.
Есть какой-нибудь способ в Core сделать что-то типа реле, или всё там работает постоянно?
Если есть, укажите пожалуйста на ошибку
Этот промежуток разделён на интервалы: -1...-0.5, -0.5...0, 0...0.5, 0.5...1
Выходной сигнал должен принимать разные значения в зависимости от того, в каком интервале находится фаза:
Код:
if ( -1<=Ph<-0.5 ) out=F1(Ph);
else if ( -0.5<=Ph<0 ) out=F2(Ph);
else if ( 0<=Ph<0.5 ) out=F3(Ph);
else if ( 0.5<=Ph<=1 ) out=F4(Ph);
Она работает, но функции F1, F2, F3, F4 просчитываются всегда, независимо от значения фазы.
Я хочу, чтобы каждая фукция просчитывалась только тогда, когда фаза находится в нужном интервале, потому что они ресурсоёмкие.
Я попробовал поставить ещё по роутеру на них, но почему-то эта реализация не работает:
Хотя по идее роутер должен отсоединять F1...4 от триггеров, если фаза не в нужном интервале. Когда я руками отсоединяю их, нагрузка на ЦП падает.
Есть какой-нибудь способ в Core сделать что-то типа реле, или всё там работает постоянно?
Если есть, укажите пожалуйста на ошибку