Не совсем улавливаю суть, точнее цель.
В моем примере показано, что не написав в программе ни одной осмысленной сторчки кода режим ШИМ на быстрых выходах контролеера можно реализовать через конфигурацию. Эту конфигурацию нужно настроить и в дальнейшем передавать в каналы значения мощности в виде Word в диапазоне от 0 до 1000. И все будет работать, за это отвечает исполнительная система контроллера, самому больше ничего писать не надо. Если нужно менять период в процессе работы (для этого должны быть весомые основания) то это тоже работает, только чтопроверил, следом выложу пример.
Теперь давайте посмотрим, что делается в вашем примере.
ШИМ задан в конфигурации, и вы одновременно с этим пытаетесь еще реализовать что-то самостоятельно. Зачем, все и так работает. Я видимо не совсем понимаю, что вы хотите получить в результате. Объясните пошагово, что должно происходить, найдем оптимальное решение.