Можно, если осторожно

Все дело в том, что если в режиме счета Count_Up период, задаваемый регистром CCR0, вы установите больше текущего, то все отработает нормально. Но если задаваемый период будет меньше текущего, то таймер сначала досчитает до переполнения 0xFFFF и только затем будет отрабатывать заданный период. Так что в последнем случае, кроме установки CCR0 нужно еще и сбрасывать счетчик таймера (TAR).
Если вы используете таймер для формирования сигнала ШИМ, периодом которого желаете управлять, то можно использовать таймер в режиме Continuous и каждый раз по прерыванию CCR0 простым суммированием невзирая на переполнение добавлять новый период с текущему содержимому CCR0. Кстати, для Timer_B это выглядит еще проще. У него уже предусмотрена двойная буферизация регисторов сравнения CCRx.
Резюмируя: читайте User's Guide, там все написано. Перевод см.
тут.
P.S. ну и совсем очевидную вещь добавлю. Учитывайте скорость выполнения программы (частоту сигнала MCLK) и частоту тактирования собственно таймера. Естественно, если они равны, то вы не сможете манипулировать периодами ШИМ величиной в единицы тактов. CPU просто не успеет.