Честно говоря я невкуриваю, почему ваш программный DDS не может инвертировать какой-нибудь порт с началом каждой фазы. тупанул конкретно http://caxapa.ru/lib/MyDDS.pdf
Это моё личное предвзятое мнение. Любое совпадение с реальностью является случайным и непреднамеренным.