[uquote="DmitryR",url="/forum/viewtopic.php?p=4281105#p4281105"]Для этого попробовал разные подходы:[/uquote]
В зависимости от требуемого диапазона интервалов, думаю возможно сделать всё полностью аппаратно, без всяких прерываний.
TEHb правильно посоветовал про RM0385, там на страницах 713, 794, таблицы внутренних соединений триггеров. При беглом рассмотрении схема видится так:
- выбираем запускающим таймер TMR1, он будет синхронно запускать 4 других таймера (на вашей картинке 4 сигнала ведь).
- режим TMR1 - слэйв триггер-моде, источник входного триггера - ETR1, перепадом по этой ноге будем стартовать весь хоровод. Сам он ни каких задержек не делает, просто служит "синхронизатором".
- выходной триггер для TMR1 - по запуску (Enable).
- по таблицам подбираем таймеры, у которых один и тот-же входной сигнал триггера (это ITR0) подключен к TMR1. Это TMR2, TMR3, TMR4, TMR8.
- настраиваем эти таймеры как слейв триггер-моде, источник входного триггера ITR0, генерация одного периода шим с требуемыми задержками по одному из каналов.
- тактирование всех таймеров - внутреннее.
- по вкусу можно поставить биты MSM.
Конфигурите в кубе все таймеры, выставляете требуемые задержки через регистры, можно вручную (без куба), запускаете тоже нужными битами вручную. Если стартовать нужно не сигналом извне, а событием, то можно просто запускать TMR1, без ETR.
Почитайте про таймеры
тут, всё очень подробно. Там несколько частей.