Всегда здравствуйте.
Вот все, все Вы правильно расписали. Кроме сути. Я не прошу нарисовать все за меня(тем более, как Вы выше заметили, этих готовых прошивок хоть в мегу, хоть в есп, хоть стм). Я для себя хочу понять, как это все реализовано. Так-как опыта 0/0, то для меня все это сложно и интересно. Я уже говорил, что где-то мне четко сформулировали первоначальные шаги для достижения оной хотелки(подчеркну, это личная хотелка не более-того). Я определился с МК (stm32f0 или stm32f4 или stm32G4 ну уж очень они мне нравятся и с ними я могу управляться на уровне CMSIS пусть не в полном обьеме но...), подключить USB_флешку к МК и считать g-kod получается (правда пока только с HAL), задача преобразовать g-kod в траекторию движения(сколько кудой крутить) еще не разбирал, рано еще если крутить неполучается. И вот теперь к сути. Три таймера запустить абсолютно синхронно не проблема, один таймер назначаю старшим мастером и три слэвами, запускаю три слэйва и пока мастер не стартанет - эти троя сидят и ожидают зеленого свистка. Но, частоты этих таймеров должны меняться на ходу без остановки и без привлечения внимания со стороны ЦП, а это значит нада ПДП. И вот тута и засада, нет понимания как запустить одновременно при использовании DMA? Без DMA все стартует одновременно и красиво, а с DMA которая запихивает по необходимости нужный ARR - все разваливается (маловато знаний и с английским туговато). Проводя "опыты" - методы научного тыка - результатов не дают, то запускается все красиво и работает какое-то время(я даже думал, что вот оно счастье), но в какой-то момент все разваливается и разьезжается. Мало того, в процессе был выявлен главный недостаток такого подхода: при делителе на драйвере ШД около максимальных значений - этаж какого размера буфер рассчитанных значений придется хранить в памяти (ну тут я не уверен проблема это или нет, так как скорости "крутилки" 100-150кГц, возможно процессор и будет успевать рассчитывать на ходу... но это патом не сейчас). Так в сухом останке: выбор технологии выдачи трех независимых степ-сигналов? Таймеры, memory-DMA-GPIO, SPI/USART? Или...? После решения этого вопроса, я смогу двигать дальше.
Вот и подскажите в этом направлении, ну или предложите свое мнение по такой маленькой и конкретной задачке. Спасибо.
ps: Прерывания запрещены в любом виде(кроме E_stop и лимитов), процессору и так будет чем заниматься.