ServoSmooth это надстройка над “стандартной” библиотекой Servo.h и для плат на 328p они работают на Timer1 Поэтому оба вывода Timer1 становятся недоступны для ШИМ. Подключать серво можно к любым выводам. Поэтому если вы перенесете их на другие пины с D5 и D6, то у вас будет два ШИМ канала Timer0. Но на нем считается millis и delay, поэтому частоту ШИМ менять нельзя, только скважность (0 - 255).
Евгений, Ваше первое сообщение мне помогло.
Понял, что нужно искать и отсекать иное нежели таймеру 2 как причину.
Сейчас появился иной вопрос.
Имеет ли смысл на пинах D5, D6 поднимать частоту ШИМ с правкой делителя miles, micros,…?
Вот по этому примеру:
Если очень хочется или очень нужен разогнанный ШИМ на системном (нулевом) таймере без потери функций времени, то можно их скорректировать следующим образом:
На мой взгляд, менять частоту Таймера0 можно, если быть уверенным на что и как это может повлиять. Библиотеки могут использовать millis и micros и надо разобраться с их работой.
Наверно зависит от условий.
Действительно ли необходимо иметь частоту ШИМ > 1 КГц, и если да то на скольких выводах, в каких пределах и с какой точностью.
Можно ли перенести задачу с таймера 2 на таймер 0 и тогда реализовать шим на таймере 2 (если его точности достаточно).
Можно ли использовать другой МК, в котором не будет ограничений.
Какой алгоритм сейчас выполняет таймер2 в вашей программе?