tem uns dois anos que não faço nada com servos. .. mas é simples.
é lógico que utilizar um pwm é mais simples ... mas não é necessário, pois o servo move-se de acordo com a largura do sinal que recebe ... se não me engano vc pode variar de 1 a 2 ms ...
procure sobre interrupção ... é algo muito importante em programação de microcontroladores, e no seu caso, procure interrupção de timer (timer0, timer1 ...)
Para dar uma luz ... é assim ... a frequencia em que os servos padrão futaba trabalham é de 50Hz, e os pulsos de 1 a 2 ms (confirme não estou certo disto), vc precisa fazer o que? subtrair esses 1 ou 2 ms dos 20ms da frequencia de acionamento.
para converter a frequencia em segundos basta vc dividir 1 pela frequencia em Hertz... exemplo ... quanto é em segundos 50Hz ... seg = 1 / 50 .. é igual a 0,02s ou 20ms ... se fosse 100Hz ... seg = 1 / 100 .. é igual a 0,01s ou 10ms ...
agora para vc acionar facil ... dos 20ms-1ms ... vc mantém durante 19ms o pino em valor baixo e 1ms em valor algo ... ou mantem 18ms o pino em valor baixo e 2 em valor alto ... viu que a soma do valor alto e baixo dah 20ms? pois eh ... a frequencia está em 50Hz ... e os pulsos variando de 1 a 2 ms ... facinho neh?
pronto .. leia .. releia ... entenda ... esta é uma forma muito simples para vc entender como é que aciona o servo ... ok?
abrax!