Учитесь искать. На этом сайте много примеров и много разъяснений на словах.
Общий принцип - импульс на серву идет 50 раз в секунду.
Длительность импульса определяет отклонение. от 1000 мкс до 2000 мкс.
Реализовать без ШИМа это можно десятками разных способах, которые так же описаны на этом форуме и в другом интернете.
Вот простейший пример:
- Код: Выделить всё • Развернуть
PORTA = 0x00; DDRA = 0xFF;
while(1)
{
PORTA = 0xFF;
delay_us(1500); // Задержка, обеспечивающая среднее положение сервопривода
PORTA = 0x00;
delay_ms(18); // Задержка, обеспечивающая примерно 50 импульсов в сек
}
Посмотрите на эмуляторе или осциллографе форму импульсов, генерируемых этой программой, а потом сравните с вашими результатами.