Проблема в том, что если мы программно генерируем несколько ШИМ потоков, то они должны работать параллельно.
Если писать программу на Python, то сам по себе Pyton - одно поточное приложение. Есть библиотеки для решения этой проблемы, но это - отдельный гемморой.
Если писать на С, то там надо использовать библиотеку pthread и это тоже - не совсем просто всё...