• Регистрация
zooika
zooika0.00
н/д
  • Написать
  • Подписаться

несколько clk в stateflow

есть два clk сигнала (clk1 и clk2). нужно, чтобы при clk1 по фронту выключался свет (light=0), а при clk2 также по фронту включался свет (light=1). одднако при реалиации выдает такую диаграмму 

есть два clk сигнала (clk1 и clk2). нужно, чтобы при clk1 по фронту выключался свет (light=0), а при clk2 также по фронту включался свет (light=1). одднако при реалиации выдает такую диаграмму 

Теги

    09.08.2021

    Комментарии

    • supernova
      supernova+34.00
      9.08.2021 17:41

      Подозреваю, что вы добавляли входные порты через EventPort, хотя вам куда больше бы подошли пара input под каждый сигнал. Ну и потом, у вас генераторы сигналов работают синхронно. Их фронты появляются одновременно, что может вопроиниматься чартом как взаимное отрицание или мгновенное переключение туда и обратно. Разнесите их немного во времени.

      • zooika
        zooika0.00
        9.08.2021 19:54

        event clk1 и clk2 я задавал в model explorer.  Разнес фронты сигналов немного, и, похоже, все работает верно, но делал это вручную. как это сделать автоматически, чтобы при задании частоты clk1 и clk2 их фронты не совпадали? 

         

        • supernova
          supernova+34.00
          9.08.2021 21:30

          Можете попробовать различные блоки с приставкой delay. 

      • Ответ был удален
        • KsOskin
          KsOskin0.00
          28.09.2021 12:54

          Судя по модели, у Вас только один вход, и тот триггерный. А обращение к нему идет как к двум числовым входам. Stateflow так не распознает, что надо, хотя и ошибку не выдает. Надо завести два раздельных порта и обрабатывать их по is change. 

          Либо обработать оба входа и внутри чарта реализовать переключения по локальным событиям. Но, в любом случае, входа должно быть два.