Для руления сервами МОЖНО использовать аппаратный ШИМ. Но тут нас подстерегают проблемы: таймеров всего 3, и на каждый можно по 2 канала, итого не больше 6 серв. Более того, таймер 0 (кажется он - могу наврать - пишу по памяти с чужой машины) заводится на частоту в 2 раза выше, и не факт, что сервы будут его нормально воспринимать. Можно конечно и таймер перепрограммировать, но тогда некоторые ф-ии (типа millis()) будут неправильно работать.
Поэтому стандартная библиотека Servo начиная с версии 0017 использует другой подход - я как-то глядел ее код - там все весьма грамотно - висит обработчик прерывания таймера, который и дергает нужные ноги.
Библиотека поддерживает до 12 серв на любых каналах - ШИМ не используется.
Вывод - пользуй стандартную библиотеку :)