Цитата(Genadi Zawidowski @ Oct 26 2014, 02:05)

Я делал ШИМ на 16-ти (или менее) битах порта STM32. DMA было настроено на выдачу по таймеру из буфера в порт данных, которые ставили/сбрасывали нужные биты. Если исходник будет нужен, выложу здесь.
А что? Хороша у вас идея. Сами придумали?

Впрочем, идея носится в воздухе, поскольку именно так проигрывают аудиофайлы.
В самом деле, можно "проигрывать пластинку" в порт, чтобы получить в нем любую, заранее заданную, последовательность чередования бит. В том случае, если эта последовательность зациклена, а состояние порта меняется редко, метод, предложенный Genadi Zawidowski, действительно очень хорош.
Кстати, если чередование фаз не такое уж быстрое (а если это мотор, то так оно и будет), то схему можно реализовать даже на прерываниях на какой-нибудь простенькой Тиньке, когда в процедуре прерывания циклически обходится массив, байты из которого копируются в порт. Когда-то я точно так же пыталась управлять шаговым двигателем, рассчитывая не на ШИМ, а на расписание переключения обмоток (ШИМом тогда еще пользоваться не умела).